[b]在hibernate 删除关联时会出现[color=red]deleted object would be re-saved by cascade (remove deleted object from associations[/color])的异常,现在网络上解决这个问题的,无非以下这几种
[size=medium]
方法1 删除Set方的cascade:([color=red]缺点:子对象和父对象不能进行级联更新,没意义[/color])
方法2 解决关联关系后,再删除
onside.getManys().remove(thisMany); //在所关联的一方的set中移走当前要删除的对象
thisMany.setOne(null); //设置所对应的一方为空,解除它们之间的关系
manyDao.delete(thisMany);
方法3 在many-to-one方增加cascade 但值不能是none ([color=red]缺点:子对象也级联到父对象,难得删除一个学生要把老师也删除?[/color])
方法4 现在我研究出来第四种,更加简单快捷
直接把子对象关联的父对象setNull,然后保存子对象,然后删除子对象,具体看代码[/size][/b]
[size=medium]
方法1 删除Set方的cascade:([color=red]缺点:子对象和父对象不能进行级联更新,没意义[/color])
方法2 解决关联关系后,再删除
onside.getManys().remove(thisMany); //在所关联的一方的set中移走当前要删除的对象
thisMany.setOne(null); //设置所对应的一方为空,解除它们之间的关系
manyDao.delete(thisMany);
方法3 在many-to-one方增加cascade 但值不能是none ([color=red]缺点:子对象也级联到父对象,难得删除一个学生要把老师也删除?[/color])
方法4 现在我研究出来第四种,更加简单快捷
直接把子对象关联的父对象setNull,然后保存子对象,然后删除子对象,具体看代码[/size][/b]
thisMany.setOne(null);
Service.update(thisMany);
Service.delete(thisMany);