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

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


使用spring + hibernate annotations的@OneToMany 一对多双向关联后出现异常: 
java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z 
出现这种异常通常是由于Myeclipse的javaee.jar 版本较低,与Hibernate等自带的JPA出现了冲突。 
网上一些处理方法是删除项目里的 删除 建立web项目时自带的Javaee.jar,可是这样带来的后果是 httpServletRequest 等组件无法使用。


在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,就会出现此异常。


hiberante3.6.10与javaee.jar包的中的一些类库产生冲突造成的。


笔者这里的解决办法如下:
进入MyEclipse的安装路径 E:\MyWorker\Common\plugins\com.genuitec.eclipse.j2eedt.core_10.0.0.me201110301321\data\libraryset\EE_5
javaee.jar和jstl-1.2.jar两个包复制到其它位置,然后把javaee.jar中的 persistence文件夹删除掉。
java.lang.NoSuchMethodError: <wbr>javax.persistence.OneToMany.orphanRemoval()Z
按照上图的方法做,就可以把调整后的jar加到项目工程中了,并且这两个jar包不在工程的lib目录下,打包的时候不会被打入工程中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值