Hibernate 3.5 缺少jpa 包问题

Hibernate 3.5 缺少jpa 包问题

Exception in thread "main" java.lang.NoClassDefFoundError: javax/persistence/Cacheable
 at org.hibernate.cfg.AnnotationBinder.determineCacheSettings(AnnotationBinder.java:946)
 at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:589)
 at org.hibernate.cfg.AnnotationConfiguration.processArtifactsOfType(AnnotationConfiguration.java:636)
 at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:359)
 at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1377)
 at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:954)
 at TeacherTest.main(TeacherTest.java:16)
Caused by: java.lang.ClassNotFoundException: javax.persistence.Cacheable
 at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
 at java.security.AccessController.doPrivileged(Native Method)
 at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
 at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
 at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
 ... 7 more

 

错误原因,javax.persistence.Cacheable 是 JPA 2.0 规范中的东西!

支持 JPA 2 的 Hibernate 实现 3.5 版目前还处于 CR2 版本之中,还没有正式发布。

需要在加入hibernate-distribution-3.5.0-Final/lib/jpa目录下的hibernate-jpa-2.0-api-1.0.0.Final.jar

我将hibernate-jpa-2.0-api-1.0.0.Final.jar 加入到包中,不过却影响到Validator的使用,

不知道你们有没有遇到这种问题,如何解决?

Java代码
  1. [14 :36 :43.159 ] {http--8080 -3 $14093817 } org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.lang.AbstractMethodError  
  2. [14 :36 :43.159 ] {http--

确实。。但是加入了hibernate-jpa-2.0-api-1.0.0.Final.jar会和ejb3-persistence.jar里很多重复,难免会出现冲突情况。
可以将Cacheable类加入到ejb3-persistence.jar中,或者还是用以前的稳定版本,3.3.2没有此问题。

 

http://eryk.javaeye.com/blog/631989

你可能感兴趣的:(Hibernate 3.5 缺少jpa 包问题)