首頁 > Java > java教程 > 主體

為什麼我的 Play Framework 應用程式使用 Hibernate 4.3.0.Final 拋出 NoSuchMethodError:javax.persistence.Table.indexes()?

DDD
發布: 2024-11-25 09:07:12
原創
835 人瀏覽過

Why Does My Play Framework App with Hibernate 4.3.0.Final Throw a NoSuchMethodError: javax.persistence.Table.indexes()?

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

在Hibernate 中

在Hibernate. .Final 中使用Play Framework應用程式時,使用者可能會在 javax.persistence.Table.indexes() 中遇到 NoSuchMethodError 異常。此問題特定於 Hibernate 4.3.0.Final,在 4.2.5.Final 等早期版本中不會出現。

根本原因

發生錯誤的原因應用程式類別路徑中不同版本的 Hibernate 規範之間的衝突。 play-java-jpa 工件依賴 Hibernate 2.0 API (hibernate-jpa-2.0-api),而 Hibernate 4.3.0.Final 引入了 Hibernate 2.1 API。因此,兩個 API 版本在類別路徑中共存,導致 NoSuchMethodError 異常。

解決方案

libraryDependencies ++= Seq(
  javaJdbc,
  javaJpa.exclude("org.hibernate.javax.persistence", "hibernate-jpa-2.0-api"),
  "org.hibernate" % "hibernate-entitymanager" % "4.3.0.Final"
)
登入後複製

要解決此問題,請從build.sbt 文件,同時包含 Hibernate 4.3.0.Final。以下是 build.sbt 檔案的更新版本:

    註解:
  • 此解決方案適用於 Play 2.2.x。先前版本的建置檔案中可能存在細微差別。
進行這些更改後,重建應用程式應該解決 NoSuchMethodError 異常。

以上是為什麼我的 Play Framework 應用程式使用 Hibernate 4.3.0.Final 拋出 NoSuchMethodError:javax.persistence.Table.indexes()?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板