LINUX.ORG.RU

Spring + Hibernate5. SessionFactory instantiating failed

 , ,


0

1
Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: org.springframework.orm.hibernate5.LocalSessionFactoryBuilder.addAnnotatedClass(Ljava/lang/Class;)Lorg/hibernate/cfg/Configuration;

Что это?

<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"
        p:dataSource-ref="dataSource"
        p:configLocation="${hibernate.config}"
        p:packageToScan="..." />

Почему эта настройка не работает? Поделитесь, плз, рабочим примером.

★★★★★

Читаю маны и понимаю, что нету в этом классе addAnnotatedClass. Но тогда я что-то другое неверно настраиваю. Что?

bvn13 ★★★★★
() автор топика

скастану stevejobs-а на пожарный.

bvn13 ★★★★★
() автор топика

у тебя минимального примера нету?

легкий гуглинг показывает, что похожая ошибка возникает, если неправильно в мавене прописать зависимости (зависимости от разных несовпадающих версий хибернейта или спринга). А еще если спринг настроен неправильно. А еще... Короче, от разного она возникает

наверное, если ошибка не очевидная, придется собирать минимальный пример, потом лезти во внутренности спринга, ставить брейкпоинты и смотреть, какой именно инит метод не вызывается, и по контексту понимать чего он хочет. И когда поймешь что ему хочется - подложить нужное

stevejobs ★★★★☆
()
Ответ на: комментарий от userd

точно помню, что руками создавал (в джавном формате конфига, через new) LocalSessionFactoryBean, и он вполне создавался

stevejobs ★★★★☆
()
Ответ на: комментарий от userd

Попробуй протестить Data Source/Конфиг хибера. Я такое ловил на тупых очепятках.

spider_russia
()
Ответ на: комментарий от stevejobs

Проблема появилась, когда я пару сущностей со связями между ними в hibernate создал. До этого проект собирался и деплоился. Но, может быть, до этого спрингу и не нужно было этот sessionFactory инстанциировать.

bvn13 ★★★★★
() автор топика
Ответ на: комментарий от userd

на этот выдает:

No default constructor found

засада

bvn13 ★★★★★
() автор топика
Ответ на: комментарий от stevejobs

похожая ошибка возникает, если неправильно в мавене прописать зависимости (зависимости от разных несовпадающих версий хибернейта или спринга)

это натолкнуло меня на мысль. в инете везде пишут примеры связи спринга 4го и гибернейта 4го.

поменял версии вот так:

        <spring.version>4.2.3.RELEASE</spring.version>
        <!-- <hibernate.version>5.0.4.Final</hibernate.version> -->
        <hibernate.version>4.3.11.Final</hibernate.version>

и все скомпилилось

спасибо :)

bvn13 ★★★★★
() автор топика
Ответ на: комментарий от stevejobs

ну а что там такого особенного в новой версии? нужно ли оно мне? какими-то киллер-фичами пользоваться - мне еще рано. я еще его не освоил на базовом уровне. баги пофикшенные - ну, надеюсь, они не скажутся на мне. а что еще?

bvn13 ★★★★★
() автор топика
Ответ на: комментарий от bvn13

http://stackoverflow.com/questions/31965179/whats-new-in-hibernate-5

из того что видно с первого взгляда - поддержка нового апи дат из Java8
но этого можно достичь и в четверке самостоятельно, типа так (первая ссылка в гугле): http://stackoverflow.com/questions/23890687/hibernate-4-with-java-time-locald...

если изучаешь, то ты прав, пока пофиг

stevejobs ★★★★☆
()
Ответ на: комментарий от stevejobs

ну, в книге Спринг для профессионалов описывают работу с гибернейтом не последних релизов и преобразование даты из БД в программу делают так:

@Temporal(TemporalType.DATE)
    @Column(name = "date")
    private Date date;

так что бум пробовать

bvn13 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.