hibernate 的配置 cascade

在hibernate中删除一对多中的多方数据时报错:
org.hibernate.ObjectDeletedException : deleted object would be re-saved by cascade (remove deleted object from associations): [pojos.UdData#40288669477c2dd501477c2dd6140002]
 
分析
字面意思是“被删除的数据因为cascade选项将会被重新保存【方法:将该数据从关联关系中移除】”
 
解决:

many.setOne(null);//解除与one的关联关系

//由于是在set遍历时进行操作,需要在iter中删除,否则会报java.util.ConcurrentModificationException

//如果是直接取出的many,则不需要此步骤
iter.remove();       
s.remove(many);

session.delete(many);//删除many

 
其他:
http://blog.csdn.net/zhujiaxing666666/article/details/8499103
该blog中提到了其他几种方法,并分析了优缺点
 
cascade的设置指明:设置方的操作对另一方的影响
如果在多方也设置成all,则在删除一个many记录时把one也会删除掉,一定要注意
原文地址:https://www.cnblogs.com/malaya/p/3877403.html