我用ANNOTATION的ONE TO MANY,出错“java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z ”
 我上网查了,网上说是以下原因:
使用MyEclipse创建JavaEE5.0的Web项目,在使用Hibernate3.5.1以上(包括3.6)的注解功能时出现错误:java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z 。解决办法:删除对Java EE 5 Libraries的使用。问题原因:javaee.jar中的部分类与hibernate-jpa-2.0-api-1.0.0.Final.jar存在版本冲突。
我删除了对Java EE 5 Libraries的使用,没错了,但是我想用JAVA EE 5 Libraries中的包怎么办?
有没有好点的解决办法?

解决方案 »

  1.   

    两个jar冲突的话,原则上不能在同一个工程中用都使用。
    如果确实想用的话,(我先设定一下,必须使用的jar为主,可能要使用的为辅)先要确认辅jar中要用到的类或者方法是否与主jar冲突。这个冲突范围比较广,包括自身的package,类名,方法名,引用的类。引用的类再引用的类都要调查。如果完全不冲突。可以将辅jar中与主jar冲突的类去掉(前面的调查,就是要在去掉冲突的类之后保证能正常运行),这个如何去掉应该会吧。
    如果说上面说的做不到,你还想用的话。可以变相的新建一个工程。在新工程中使用辅jar,而不是用主jar。只完成和辅jar相关的任务。然后原工程中调用新工程。至于参数怎么传递具体自己确认吧。
      

  2.   

    JAVA EE 5 Libraries不就4个包么?你删掉所有的之后,在到myeclipse里找到需要的包,然后扔到lib里就OK了。。JAVA EE 5 Libraries的4个包在myeclipse安装目录的这里:
    D:\Program Files\MyEclipse 6.5\myeclipse\eclipse\plugins\com.genuitec.eclipse.j2eedt.core_6.5.0.zmyeclipse650200806\data\libraryset\EE_5