首页 > Java > java教程 > 正文

在 Play Framework 应用程序中升级 Hibernate 后,如何解决 javax.persistence.Table.indexes() 中的 NoSuchMethodError?

Susan Sarandon
发布: 2024-11-24 06:05:14
原创
288 人浏览过

How to Resolve a NoSuchMethodError in javax.persistence.Table.indexes() After Upgrading Hibernate in a Play Framework Application?

javax.persistence.Table.indexes()[Ljavax/persistence/Index

在 Play Framework 应用程序中,从 Hibernate 升级时出现 NoSuchMethodError 4.2.5.Final 到 4.3.0.Final 可以导致关于 javax.persistence.Table.indexes().

的“NoSuchMethodError”异常原因:

问题源于 play-java-jpa 工件之间的依赖冲突以及 hibernate-entitymanager 工件。 play-java-jpa 工件依赖于与 hibernate-entitymanager 工件(版本 2.1)不同版本的持久性 API(版本 2.0)。当两个工件都存在于类路径中时,较新的 API 定义优先,导致方法 javax.persistence.Table.indexes() 未定义。

解决方案:

要解决此问题,请编辑 build.sbt 文件并从 play-java-jpa 中排除 hibernate-jpa-2.0-api 依赖项 人工制品。更新后的依赖配置应如下所示:

libraryDependencies ++= Seq(
javaJdbc,
javaJpa.exclude("org.hibernate.javax.persistence", "hibernate-jpa-2.0-api"),
"org.hibernate" % "hibernate-entitymanager" % "4.3.0.Final"
)
登录后复制

此配置可确保类路径仅包含较新版本 (2.1) 中的 API 定义,并避免方法定义冲突。

对于 Play 2.2.x:

上面提供的 build.sbt 文件配置是为 Play 设计的2.2.x。对于早期版本的 Play,构建文件配置可能存在差异。有关在不同版本的 Play 中配置依赖项的更多信息,请参阅 Play 文档。

以上是在 Play Framework 应用程序中升级 Hibernate 后,如何解决 javax.persistence.Table.indexes() 中的 NoSuchMethodError?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板