首页 > Java > java教程 > 正文

为什么将 Hibernate 从 4.2.5.Final 升级到 4.3.0.Final 会导致'javax.persistence.Table.indexes()”中出现'NoSuchMethodError”?

Barbara Streisand
发布: 2024-11-24 01:54:12
原创
983 人浏览过

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

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

问题:

从 Hibernate 升级时Play Framework 应用程序中的 4.2.5.Final 到 4.3.0.Final 出现异常:

java.lang.NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index;
登录后复制

答案:

问题的出现是由于应用程序类路径中不同版本的 Java Persistence API (JPA) 规范依赖项之间的冲突。具体来说,Play Framework JPA 插件包含对 JPA 2.0 规范的依赖项,而 Hibernate 4.3.0.Final 需要较新的 JPA 2.1 规范。

要解决此问题,请从构建中排除 JPA 2.0 规范依赖项.sbt 文件并将其替换为 JPA 2.1 规范的以下依赖项:

"org.hibernate.javax.persistence" % "hibernate-jpa-2.1-api" % "1.0.0.Final"
登录后复制

For玩 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"
)
登录后复制

通过排除 JPA 2.0 依赖项并包含 JPA 2.1 依赖项,您可以确保使用正确版本的 JPA 规范,从而解决NoSuchMethodError 异常。

以上是为什么将 Hibernate 从 4.2.5.Final 升级到 4.3.0.Final 会导致'javax.persistence.Table.indexes()”中出现'NoSuchMethodError”?的详细内容。更多信息请关注PHP中文网其他相关文章!

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