java.lang.ClassNotFoundException: javax.persistence.NamedStoredProcedureQuery — ошибка Hibernate

Вышеупомянутое исключение выбрасывалось при создании фабрики сеансов гибернации.

введите здесь описание изображения

В папке lib приложения есть hibernate-jpa-2.1-api и javax.persistence.2.1.0. Я могу видеть класс NamedStoredProcedureQuery в обоих банках. Но я получаю ошибку времени выполнения для classnotfoundException. Любое предложение?


person Evan    schedule 31.01.2015    source источник


Ответы (3)


Класс NamedStoredProcedureQuery доступен в файле jar hibernate-jpa-2.1-api. Но эта банка ссылается на другую банку во время выполнения. Поэтому я не получал ошибок во время компиляции и не получал исключений во время выполнения. Я только что добавил другие спящие библиотеки через репозиторий maven. Первоначально я использовал только спящее ядро. Теперь идентификаторами артефактов являются hibernate-core, hibernate-validator, hibernate-commons-annotations, hibernate-jpa-2.0-api и hibernate-entitymanager.

person Evan    schedule 01.02.2015

У меня есть неидеальное решение. В итоге я использовал hibernate-core 3 (3.6.10), который не выдает ту же ошибку.

Я получил эту идею от Марио Швайгера, CodeRanch, для другого, но похожего исключения class not found: http://www.coderanch.com/t/509836/ORM/databases/Hibernate-java-lang-ClassNotFoundException-javax

Подробности: я делаю что-то немного другое - интегрирую Hibernate 4 со Struts 1 (вместо Spring), но столкнулся с тем же классом NamedStoredProcedureQuery, но не нашел проблему. Добавление hibernate-validator вызывало разные ошибки. Другие вещи, которые у меня не сработали, были: добавление hibernate-entitymanager, добавление javax.persistence и изменение версий java tomcat или eclipse между Java 8 и 7.

Вам нужно будет создать экземпляр sessionfactory по-разному между Hibernate 3 и 4.

Надеюсь, кто-нибудь опубликует лучшее решение вашей проблемы Spring.

person Rosalind    schedule 12.03.2015

Вы должны добавить hibernate-entitymanager в свой путь к классам.

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-entitymanager</artifactId>
    <version>${hibernate.version}</version>
</dependency>
person pjanssen    schedule 14.04.2017