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

 在web项目中使用注解配置一对多关联映射时,会出现异常

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文件夹删除掉。

解除对的引用,即可解决问题

 

posted @ 2016-08-25 13:05  回青  阅读(940)  评论(1编辑  收藏  举报