以上异常一直在抛出创建一个hibernate会话工厂。
在应用程序lib文件夹中有hibernate-jpa-2.1-api和javax.persistence.2.1.0。我可以在两个jar中看到NamedStoredProcedureQuery类。但我得到classnotfoundexception的运行时错误。有什么建议吗?
答案 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>