首頁 >Java >java教程 >為什麼將 Hibernate 從 4.2.5 升級到 4.3.0 會導致 javax.persistence.Table.indexes() 出現 NoSuchMethodError?

為什麼將 Hibernate 從 4.2.5 升級到 4.3.0 會導致 javax.persistence.Table.indexes() 出現 NoSuchMethodError?

Linda Hamilton
Linda Hamilton原創
2024-11-26 13:12:12982瀏覽

Why Does Upgrading Hibernate from 4.2.5 to 4.3.0 Cause a NoSuchMethodError for javax.persistence.Table.indexes()?

NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index;

問題:問題:

問題:
NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index;

從Hibernate升級後4.2.5 到 4.3.0,出現了異常:

此問題在 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 規範。

修正:
libraryDependencies ++= Seq(
javaJdbc,
javaJpa.exclude("org.hibernate.javax.persistence", "hibernate-jpa-2.0-api"),
"org.hibernate" % "hibernate-entitymanager" % "4.3.0.Final"
)

修改build.sbt 文件,新增以下內容依賴項:

此步驟排除JPA 2.0 依賴項並確保依賴項僅使用JPA 2.1。此解決方案適用於 Play 2.2.x 版本。

注意:對於早期版本的 Play,此問題可能需要不同的修改。

以上是為什麼將 Hibernate 從 4.2.5 升級到 4.3.0 會導致 javax.persistence.Table.indexes() 出現 NoSuchMethodError?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn