java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z 两种解决方案
java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z
两种解决方案
这个异常是在我们配置spring + hibernate annotations的@OneToMany 一对多双向关联后出现的异常。通常在使用注解配置这个关联关系的时候极易出现这种包的冲突问题。不过减少了Hibernate映射文件,这也相应的付出一定的代价。
说明:
1.在hibernate3.5之前,我们运用hibernate开发J2EE项目通常会引以下几个jar包:
hibernate核心包:hibernate3.jar
持久化:ejb3-persistence.jar
则javax.persistence.OneToMany.class就在ejb3-persistence.jar中。
2.在hibernate3.5及其以后,运用hibernate开发J2EE项目通常会引以下几个jar包:
hibernate核心包:hibernate3.jar
持久化:hibernate-jpa-2.0-XXX.jar
hibernate-jpa-2.0-XXX.jar中已将包含了ejb3-persistence.jar所有类库和其他一些扩展,固然javax.persistence.OneToMany.class也就在hibernate-jpa-2.0-XXX.jar中了。所以当我们从3.5以下版本上级到3.5以上版本时,很容易出现不知道哪些jar包该保留哪些该删掉,因而两个jar包同时存在,出现了这个冲突异常。
3.其实持久化并不是只有ejb3-persistence.jar和hibernate-jpa-2.0-XXX.jar提供,Java EE(注意:是Java EE,并不是J2ee,J2ee在1.4以后就命名为Java EE,而且新增了很多类库)核心类库同样也提供了javax.persistence类库,当你的项目hibernate导入的jar都正常后仍旧出现冲突异常,那么你就要考虑是不是你引入的其他类库导致了这个异常。比如Java EE5及其以后的核心类库。
我不小心依赖了hibernate-jpa-2.0-api-1.0.1.Final.jar和ejb3-persistence包,导致了这个问题,删除掉去ejb3-persistence依赖即可。
以上转自:http://symphony.b3log.org/article/1407488571351
在增加项目依赖的时候需要我们注意依赖包是否相互冲突,网上的主流方法是:
1.删除建立web项目时自带的Javaee.jar,可是这样带来的后果是 httpServletRequest 等组件无法使用。 (我曾经这样干过,),然后我将项目用的javaee5的包换掉,装入javaee6,但是在项目开始没过几天所有的依赖包都变成黑色的那种了,也就是在编译的过程中出现了冲突(因为是在myeclipse8.6上开发的,javaee6可能水土不服),后来改成myeclipse10了,10则自带javaee6的并且改了一些5与Hibernate框架包的另外一些异常。
2.使用服务器是tomcat,当发布的时候,自然日志会打一大堆,
出现sessionFactory初始化失败,然后告诉你没有这个方法,网上说的方法就是将myeclipse中的D:\myeclipse10\installMyeclipse10\Common\plugins\com.genuitec.eclipse.j2eedt.core_10.5.0.me201207171805\data\libraryset下有EE_5和EE_6两个文件夹,将EE_5下的javaee.jar使用解压工具打开,(我使用的是360解压,)然后删除persistence文件夹 ,而在EE_6下的文件也有一个javax.persistence.jar的文件,将其删除。
但是要说明的是我按照2的方法删除后依然不好使。这个方法在很多论坛和其他博客中都出现了,不过在这里还是不好使,项目启动依然报错。于是在文章开始的说明处得到答案,将EE_6下的javax.persistence.jar还原,转而ejb3-persistence依赖,然后发布项目,结果好使了。
步骤:在web项目下的lib目录中有该依赖则删除,或者进入项目所在文件夹,将该依赖删除。
在这里综述上述两种方法,有遇到此异常的可以借鉴一下。
java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z 两种解决方案相关推荐
- 异常:Caused by: java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z
Spring3.0 + Hibernate3.5: 启动服务器报: Caused by: java.lang.NoSuchMethodError: javax.persistence.OneToMan ...
- 报此错错解决办法:java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z
java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z 的解决方式 Caused by: java.lang ...
- java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z
spring3.0+hibernate4+struts2整合问题,以下是用junit测试出来的莫名其妙的错误 错误提示: Initial SessionFactory creation failed. ...
- Caused by: java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z
这个异常是在我们配置spring + hibernate annotations的@OneToMany 一对多双向关联后出现的异常. java.lang.NoSuchMethodError: java ...
- java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z异常
使用spring + hibernate annotations的@OneToMany 一对多双向关联后出现异常: java.lang.NoSuchMethodError: javax.persis ...
- java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z错误
使用spring + hibernate annotations的@OneToMany 一对多双向关联后出现异常: java.lang.NoSuchMethodError: javax.persis ...
- java.lang.NoSuchMethodError: javax.persistence.OneToOne.orphanRemoval()Z at
今天写hibernate时使用了注解,但是提示了一个java.lang.NoSuchMethodError: javax.persistence.OneToOne.orphanRemoval()Z a ...
- java运行错误java.lang.NoSuchMethodError: javax.persistence.OneToOne.orphanRemoval()Z
错误内容 log4j:WARN No appenders could be found for logger (org.jboss.logging). log4j:WARN Please initia ...
- java.lang.NoSuchMethodError: javax.persistence.OneToOne.orphanRemoval()Z
这个问题其实是lib包冲突问题. javax.persistence.OneToOne在persistence-api-1.0.2.jar和hibernate-jpa-2.0-api-1.0.1.Fi ...
最新文章
- 密度聚类算法DBSCAN实战及可视化分析
- large graph挖掘的技术基础
- android 固定中间焦点,在Android上将相机焦点设置为受控固定距离
- 吴恩达《Machine Learning》精炼笔记 6:关于机器学习的建议
- 一文弄懂String的所有小秘密
- 常用的rpm和yum的一些命令
- protobuf 语法浅析
- 阿里云块存储、对象存储(OSS)、文件存储(NAS)的区别?
- 147 · 水仙花数
- Spring boot学习(七)Spring boot配置slf4j+logback日志框架
- nginx负载均衡原理(理解篇)
- php 将网页转成pdf_利用PHP将HTML页面转换成PDF文件
- 卡诺模型案例分析_KANO模型案例分析---来自58学车
- 散列表(中):如何打造一个工业级水平的散列表?
- 【vue】微信sdk中接口和标签本地调试
- bde连接oracle失败,BDE联接出错,求助
- AD19导出Gerber文件-嘉立创打板
- 史上最壕年会!微信送每人一台高配定制版iPhone X
- 忘记root密码的解决方法
- 春气融和,再创佳绩 | 菊风中标华融湘江银行远程视频银行项目
热门文章
- 优秀程序员无他-善假于物也--by黄博文
- 液位传感器与压力传感器的联系与区别
- crunch--字典生成工具
- css样式vue元素从一个背景色和字体颜色缓缓变成另一种颜色
- C语言strncpy()函数
- 【练习篇】SQLZOO(中文版)习题答案_SELECT from world
- 港科百创|极目生物宣布完成超1亿美元B轮融资,继续加快推动产品管线拓展、临床开发及商业化...
- 修改jekins端口号
- linux 硬盘响,Ubuntu下硬盘读写时声音很响问题的解决
- 12月11日第壹简报,星期日,农历十一月十八