/ / AbstractMethodError in entityManager.createQuery () - Java, Ruhezustand, JPA, Orm, Glassfish

AbstractMethodError auf entityManager.createQuery () - java, Ruhezustand, jpa, orm, Glassfish

So sieht die Verwendung von GlassFish 4 Stack Trace aus

Caused by: java.lang.AbstractMethodError
at com.sun.enterprise.container.common.impl.EntityManagerWrapper._getDelegate(EntityManagerWrapper.java:197)
at com.sun.enterprise.container.common.impl.EntityManagerWrapper.createQuery(EntityManagerWrapper.java:455)
at com.wellpoint.mobility.aggregation.core.configuration.impl.ConfigurationManagerImpl.loadConfiguration(ConfigurationManagerImpl.java:262)

Hier sind die Gläser für den Winterschlaf, die für die Untersuchung dieses Problems relevant sind.

hibernate-commons-annotations-4.0.2.Final.jar
hibernate-core-4.2.15.Final.jar
hibernate-entitymanager.4.2.15.Final.jar
hibernate-jpa-2.0-api.1.0.1.Final.jar

Nach einer anderen Frage habe ich das auch gesehenAusnahme Ruhezustand JPA 2.0 sollte mit Ruhezustandsversionen> 3.5 funktionieren. Unklare Erinnerungen an Matheklassen sagen mir, dass 4.2.15> 3.5, also sollte ich vermutlich nicht diese Probleme haben. Irgendwelche Gedanken?

Antworten:

1 für die Antwort № 1

GlassFish 4 verwendet Java EE 7, daher sollten Sie JPA 2.1 anstelle von JPA 2.0 verwenden.

Laut Hibernate-Dokumentation ist dies die Kompatibilitätssuite:

  • JPA 1.0: ORM 3.2+

  • JPA 2.0: ORM 3.5+

  • JPA 2.1: ORM 4.3+

Sie sollten also Hibernate 4.3 mit JPA 2.1 verwenden:

<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.3.7.Final</version>
</dependency>

<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.1-api</artifactId>
<version>1.0.0.Final</version>
</dependency>