ホームページ >Java >&#&チュートリアル >Hibernate 4.3.0.Final にアップグレードすると javax.persistence.Table.indexes() で NoSuchMethodError が発生するのはなぜですか?
NoSuchMethodError in javax.persistence.Table.indexes()
Hibernate を使用する Play Framework アプリケーションで、Hibernate 4.3.0.Final にアップグレードするNoSuchMethodError 例外が発生する可能性がありますjavax.persistence.Table.indexes()。この問題が発生する理由とその解決方法は次のとおりです。
原因:
この問題は、クラスパスにロードされた JPA 仕様の異なるバージョン間の競合によって発生します。 Play は JPA 仕様の特定のバージョンに依存しますが、Hibernate 4.3.0.Final は新しいバージョンを必要とします。両方のバージョンが存在すると、競合が発生し、エラーが発生します。
解決策:
このエラーを解決するには、古い JPA 仕様を Play の仕様から除外する必要があります。 Hibernate 4.3.0.Final に必要な新しいバージョンを追加する際のクラスパス。
For Play 2.2.x の場合は、build.sbt ファイルを次のように変更します。
libraryDependencies ++= Seq( javaJdbc, javaJpa.exclude("org.hibernate.javax.persistence", "hibernate-jpa-2.0-api"), "org.hibernate" % "hibernate-entitymanager" % "4.3.0.Final" )
Play の以前のバージョンについては、使用しているバージョンの特定のドキュメントを参照してください。 version.
古い JPA 仕様を除外することで、Hibernate で必要となるのは新しいバージョンのみになります。 4.3.0.Final が使用され、競合と NoSuchMethodError 例外が解決されます。
以上がHibernate 4.3.0.Final にアップグレードすると javax.persistence.Table.indexes() で NoSuchMethodError が発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。