0
我有一個NHibernate對象,它有一個子集合映射爲AsBag,反向,Cascade.AllDeleteOrphan。NHibernate堅持以前的'刪除'對象
我有我需要重新保留已刪除對象的場景。
刪除父對象是沒問題的..父母和孩子從數據庫中刪除。
問題是,我需要重新保存/保留已刪除的對象。如果我嘗試調用SaveUpdate,則會得到StaleObjectStateException,因爲對於父對象和子對象,Id字段仍設置爲非零值。
當然,我可以強制Id爲零父母刪除,但然後迫使孩子們的ID爲零看起來很麻煩。
有沒有更好的策略來處理?
非常感謝
感謝您的快速反應,但在這種情況下,它將無法正常工作....我真的需要一種機制,我可以刪除並重新保留一個對象圖。 我們所做的是: a。用一個方法創建一個接口ResetId,它被添加到每個像這樣的對象。 b。掛鉤到PostCommitDeleteEventListeners事件中,如果對象實現了我們稱之爲ResetId的接口。 您是否預見到了這種方法的任何問題? 非常感謝 –
期望的最終結果是什麼?將刪除的圖像保存爲新品牌? – HackedByChinese
在這種情況下,是的,當它被刪除時,可能需要重新保留;這種類型的「交易」也會涉及多個會話(它位於Web應用程序中)。順便說一下,這不是'長時間運行'的交易。 –