现在的位置: 首页 > 综合 > 正文

hibernate java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z

2017年12月17日 ⁄ 综合 ⁄ 共 878字 ⁄ 字号 评论关闭
  • 情况一

在hibernate3.5之前,使用Annotation通常会引以下几个jar包:
hibernate Annotaion 的包:hibernate-annotations.jar
持久化:ejb3-persistence.jar

javax.persistence.OneToMany.class在ejb3-persistence.jar中。

Hibernate3.5以及之后的版本使用Annotation只需加
hibernate-jpa-2.0-api-1.0.0.Final.jar

javax.persistence.OneToMany.class在hibernate-jpa-2.0-api-1.0.0.Final.jar

所以如果hibernate-jpa-2.0-api-1.0.0.Final.jar 又加了ejb3-persistence.jar,就会出现此异常

  • 情况二

出现这种异常通常是由于Myeclipse的javaee.jar 版本较低,与Hibernate等自带的JPA出现了冲突。
网上一些处理方法是删除项目里的 删除 建立web项目时自带的Javaee.jar,可是这样带来的后果是 httpServletRequest 等组件无法使用。

对于tomcat我目前的解决方法是:
1. 在MyEclipse的跟目录下搜索 EE_5 找到EE_5 文件夹;
2. 进去EE_5文件夹 右键 javaee.jar 打开方式 WINRAR压缩文件管理器,进去里面删除persistence文件夹 这个子文件夹。

对于weblogic我的解决方法是:
把hibernate-jpa-2.0-api-1.0.0.Final.jar放到D:\Program Files\weblogic\jdk160_05\jre\lib\ext 就没问题了。
(如果不行,可以考虑先尝试tomcat的解决方案,再接着试weblogic的。tomcat是修改java的jdk文件,而weblogic是修改本服务器里面的文件)

参考:http://k0441258778983.iteye.com/blog/1217046

抱歉!评论已关闭.