一:org.springframework.orm.hibernate3.HibernateSystemException: Found shared references to a collection:

原因分析:BeanUtil.copyProperties() 的方式复制一个实体bean的时候,这个实体bean有一个集合属性,因为这个方法只是做了一个浅拷贝,所以新拷贝的实体跟旧的实体引用了同一个集合,而这在hibernate中是不允许的,所以报错。

解决:创建新的集合,添加旧的集合数据

二:


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 等组件无法使用。




对于


tomcat


我目前的解决方法是:




1. 在 D:\Program Files\Genuitec\Common\plugins下搜索


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是修改本服务器里面的文件)



版权声明:本文为yongjiandan原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/yongjiandan/article/details/7566893