在中,通过级联删除存在关联关系的一个对象时,会出现 org.hibernate.ObjectDeletedException: deleted object would be re-saved by cascade (remove deleted object from associations)这个异常.
原因是:
Hibernate删除一个关联的对象时,比如:在一对多的时候,Hibernate会先把多的一方查询出来,然后先删除多的一方,再删除一的一方.问题就出在,当Hibernate查询出来多的一方时,此时查询出来的对象还处于association状态,也就是关联状态,所以无法删除..
解决办法是:在调用delete方法之前,先调用clear方法. 具体的原因,还不太确定,暂时先Mark一下...