NoSuchMethodError in javax.persistence.Table.indexes()[Ljavax/persistence/Index
Frage:
Beim Upgrade vom Ruhezustand 4.2.5.Final bis 4.3.0.Final in einer Play Framework-Anwendung tritt eine Ausnahme auf:
java.lang.NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index;
Antwort:
Das Problem entsteht aufgrund von a Konflikt zwischen verschiedenen Versionen der Java Persistence API (JPA)-Spezifikationsabhängigkeiten im Klassenpfad der Anwendung. Insbesondere enthält das Play Framework JPA-Plugin eine Abhängigkeit von der JPA 2.0-Spezifikation, während Hibernate 4.3.0.Final die neuere JPA 2.1-Spezifikation erfordert.
Um dieses Problem zu beheben, schließen Sie die Abhängigkeit von der JPA 2.0-Spezifikation aus dem Build aus .sbt-Datei und ersetzen Sie sie durch die folgende Abhängigkeit von der JPA 2.1-Spezifikation:
"org.hibernate.javax.persistence" % "hibernate-jpa-2.1-api" % "1.0.0.Final"
Für Spielen Sie 2.2.x und bearbeiten Sie die Datei build.sbt wie folgt:
libraryDependencies ++= Seq( javaJdbc, javaJpa.exclude("org.hibernate.javax.persistence", "hibernate-jpa-2.0-api"), "org.hibernate" % "hibernate-entitymanager" % "4.3.0.Final" )
Durch das Ausschließen der JPA 2.0-Abhängigkeit und das Einschließen der JPA 2.1-Abhängigkeit stellen Sie sicher, dass die richtige Version der JPA-Spezifikation verwendet und aufgelöst wird die NoSuchMethodError-Ausnahme.
Das obige ist der detaillierte Inhalt vonWarum verursacht ein Upgrade von Hibernate von 4.2.5.Final auf 4.3.0.Final einen „NoSuchMethodError' in „javax.persistence.Table.indexes()'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!