ホームページ >Java >&#&チュートリアル >Hibernate 4.3.0.Final にアップグレードすると javax.persistence.Table.indexes() で NoSuchMethodError が発生するのはなぜですか?

Hibernate 4.3.0.Final にアップグレードすると javax.persistence.Table.indexes() で NoSuchMethodError が発生するのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-28 17:20:11789ブラウズ

Why Does Upgrading to Hibernate 4.3.0.Final Cause a NoSuchMethodError in javax.persistence.Table.indexes()?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。