2
我使用最新的Spring框架4.1.5和Hibernate-Entity-Manager 4.3.8以及Javax。 Persistence-api 1.0.2全部使用JPA 2.1。这个规范依赖于Java EE 7.我注意到,在Resin 4.0.42中,它使用“javaee-16.jar”。问题是我收到以下异常:如何在Resin 4.0.42中加载Java EE 7并且不使用默认的Javaee-16.jar类默认加载
Caused by: java.lang.NoSuchMethodError: javax.persistence.Table.indexes()
[Ljavax/persistence/Index;
at
org.hibernate.cfg.annotations.EntityBinder.processComplementaryTableDefinitions(EntityBinder.java:973)
at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:824)
at org.hibernate.cfg.Configuration$MetadataSourceQueue.processAnnotatedClassesQueue(Configuration.java:3845)
Method javax.persistence.Table.indexes() only exists in Java EE 7
(Javax.Persistence-api 1.0.2) as a JPA 2.1 spec and NOT in Java EE 6 as a
JPA 2.0 spec.
问题是我的代码基于JPA 2.1。是否有反正我可以classload
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
</dependency>
即使树脂已经classloaded:javaee-16.jar第一次?
您好,我尝试,但树脂的琥珀(树脂的JPA 1.0实现)抱怨'<持久的xmlns =“http://xmlns.jcp .org/xml/ns/persistence“>是persistence.xml中的一个意外的顶级标记。这是JPA 2.1的命名空间。你是如何摆脱它的? (树脂4.0.43) – smallufo 2015-04-07 10:33:22
使用JPA注释,它应该工作。这个对我有用。 – logixplayer 2015-05-07 04:09:40