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