1. 程式人生 > >Hibernate之deleted object would be re-saved by cascade 異常的解決

Hibernate之deleted object would be re-saved by cascade 異常的解決

在Hibernate中,通過級聯刪除存在關聯關係的一個物件時,會出現 org.hibernate.ObjectDeletedException: deleted object would be re-saved by cascade (remove deleted object from associations)這個異常.

原因是:

Hibernate刪除一個關聯的物件時,比如:在一對多的時候,Hibernate會先把多的一方查詢出來,然後先刪除多的一方,再刪除一的一方.問題就出在,當Hibernate查詢出來多的一方時,此時查詢出來的物件還處於association狀態,也就是關聯狀態,所以無法刪除..

解決辦法是:在呼叫delete方法之前,先呼叫clear方法. 具體的原因,還不太確定,暫時先Mark一下...