NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index; im Ruhezustand
Bei der Verwendung der Play Framework-Anwendung mit Hibernate 4.3.0.Final können Benutzer in javax.persistence.Table.indexes() auf eine NoSuchMethodError-Ausnahme stoßen. Dieses Problem ist spezifisch für Hibernate 4.3.0.Final und tritt in früheren Versionen wie 4.2.5.Final nicht auf.
Ursache
Der Fehler tritt aufgrund von auf ein Konflikt zwischen verschiedenen Versionen der Hibernate-Spezifikation im Klassenpfad der Anwendung. Das play-java-jpa-Artefakt basiert auf der Hibernate 2.0-API (hibernate-jpa-2.0-api), während Hibernate 4.3.0.Final die Hibernate 2.1-API einführt. Infolgedessen existieren beide API-Versionen innerhalb des Klassenpfads nebeneinander, was zur NoSuchMethodError-Ausnahme führt.
Lösung
Um dieses Problem zu beheben, schließen Sie die Hibernate 2.0-API-Abhängigkeit aus build.sbt-Datei unter Einbeziehung von Hibernate 4.3.0.Final. Hier ist eine aktualisierte Version der build.sbt-Datei:
libraryDependencies ++= Seq( javaJdbc, javaJpa.exclude("org.hibernate.javax.persistence", "hibernate-jpa-2.0-api"), "org.hibernate" % "hibernate-entitymanager" % "4.3.0.Final" )
Hinweise:
Das obige ist der detaillierte Inhalt vonWarum löst meine Play Framework-App mit Hibernate 4.3.0.Final einen NoSuchMethodError aus: javax.persistence.Table.indexes()?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!