Heim > Java > javaLernprogramm > Hauptteil

Warum löst meine Play Framework-App mit Hibernate 4.3.0.Final einen NoSuchMethodError aus: javax.persistence.Table.indexes()?

DDD
Freigeben: 2024-11-25 09:07:12
Original
835 Leute haben es durchsucht

Why Does My Play Framework App with Hibernate 4.3.0.Final Throw a NoSuchMethodError: javax.persistence.Table.indexes()?

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"
)
Nach dem Login kopieren

Hinweise:

  • Diese Lösung gilt für Play 2.2.x. In den Build-Dateien für frühere Versionen können geringfügige Unterschiede bestehen.
  • Nachdem Sie diese Änderungen vorgenommen haben, sollte die Neuerstellung der Anwendung die NoSuchMethodError-Ausnahme beheben.

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage