NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index;
問題:
Hibernate からのアップグレード時4.2.5 から 4.3.0 では、例外が発生しました:
NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index;
この問題は Hibernate バージョン 4.2.6 ~ 4.2.8 では発生しますが、4.2.5 では発生しません。
解決策:
問題は依存関係が原因で発生しますPlay Java JPA と Hibernate 4.3 の間の競合。 Play Java JPA は JPA 2.0 仕様に依存しますが、Hibernate 4.3 は新しい JPA 2.1 仕様を利用します。
修正:
次のコードを追加して build.sbt ファイルを変更します。依存関係:
libraryDependencies ++= Seq( javaJdbc, javaJpa.exclude("org.hibernate.javax.persistence", "hibernate-jpa-2.0-api"), "org.hibernate" % "hibernate-entitymanager" % "4.3.0.Final" )
このステップでは、 JPA 2.0 に依存しており、JPA 2.1 のみが使用されるようにします。この解決策は、Play 2.2.x バージョンに適用されます。
注:
この問題は、Play の以前のバージョンでは異なる修正が必要になる場合があります。
以上がHibernate を 4.2.5 から 4.3.0 にアップグレードすると、javax.persistence.Table.indexes() で NoSuchMethodError が発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。