2011-05-18 126 views
0

應用程序使用NHibernate。 我有包含對象集B的對象A. 我的配置文件中有cascade =「all-delete-orphan」。 當我在A對象中做了更改,然後保存,對象B也保存。 如何防止保存B?是否有可能暫時禁用級聯? 關於 MarcinNHibernate禁用全部刪除孤兒

回答

1

您可以考慮使用IStatlessSession

用stateless 會話中執行不級聯到 相關情況。集合是 被無狀態會話忽略。 通過無狀態 會話執行的操作繞過Hibernate的事件模型 和攔截器。無狀態會話 易受數據別名 的影響,這是由於缺少第一級緩存。無狀態會話 是較低級別的抽象,更接近底層的ADO。

+0

在這種情況下,IStatlessSession幫助了我。謝謝。 – Marcin 2011-05-18 08:41:04

+0

問題是當對象A必須設置:B和C. B被更改而C不是。 當我保存A時,我想保存A和B並且不更新C. 是否有可能? – Marcin 2011-05-18 08:42:14

0

要防止級聯保存,必須從映射中刪除屬性。由於會話工廠中已經建立了映射,因此暫時沒有簡單的方法來禁用級聯。