java.lang.ClassNotFoundException:javax.persistence.NamedStoredProcedureQuery - Hibernate错误

时间:2015-01-31 03:09:04

标签: java hibernate sessionfactory hibernate-session

以上异常一直在抛出创建一个hibernate会话工厂。

enter image description here

在应用程序li​​b文件夹中有hibernate-jpa-2.1-api和javax.persistence.2.1.0。我可以在两个jar中看到NamedStoredProcedureQuery类。但我得到classnotfoundexception的运行时错误。有什么建议吗?

3 个答案:

答案 0 :(得分:5)

在hibernate-jpa-2.1-api jar中可以使用NamedStoredProcedureQuery类。但是这个jar在运行时引用了其他一些jar。所以我没有在编译时遇到错误并在运行时获得异常。我刚刚通过maven repository添加了其他的hibernated库。最初我只使用了hibernate-core。现在artifactIDs是hibernate-core,hibernate-validator,hibernate-commons-annotations,hibernate-jpa-2.0-api和hibernate-entitymanager。

答案 1 :(得分:0)

我有一个非理想的解决方案。我最终使用了hibernate-core 3(3.6.10),它没有抛出相同的错误。

我从CodeRanch的Mario Schwaiger那里得到了一个不同但类似的类未找到异常的想法: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 8和7之间更改tomcat或eclipse java版本。

您需要在Hibernate 3和4之间以不同方式实例化sessionfactory。

希望有人能为你的Spring问题发布一个更好的解决方案。

答案 2 :(得分:0)

您必须将hibernate-entitymanager添加到类路径中。

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-entitymanager</artifactId>
    <version>${hibernate.version}</version>
</dependency>