我正在使用Spring 2.5.6和Hibernate Annotations的組合。我有三個對象(表格或W/E)在考慮:客戶,地址,訂單。客戶爲地址設置了級聯DELETE_ORPHANS屬性。在將對象從一個父項移動到另一個父項時繞過DELETE_ORPHANS,休眠
我在做什麼是客戶合併,我將所有地址和訂單從一個客戶移動到另一個客戶,然後在舊客戶上設置禁用位。我通過從CustB中刪除地址並將它們添加到CustA來實現此目的。然後我用.update(custA)保存CustA,地址和訂單適當地移動,但是當我更新custB和禁用位時,它將刪除我移動的地址!
當我註釋掉DELETE_ORPHANS它工作正常。
如何停止DELETE_ORPHANS刪除移動的地址?我不應該從custB中刪除它們,只是更改其客戶參考?如果我在一個事務處理內部執行所有的操作,那麼每個操作都會在DELETE_ORPHAN啓用的情況下正確更新?