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

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

在此处输入图像描述

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

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

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

我从CodeRanch的Mario Schwaiger那里得到了一个不同但类似的类未找到exception的想法: 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问题发布一个更好的解决方案。

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

 org.hibernate hibernate-entitymanager ${hibernate.version}