2012-03-15 251 views
0

我有一個對象與大約20個其他對象相關的MainObject。這20個其他對象 - RelatedObject1,RelatedObject2等與MainObject的關係定義如下。NHibernate實體映射

1實例MainObject - RelatedObject_1 1個實例的> N個實例MainObject - > RelatedObject_2的N個實例 1實例MainObject - > RelatedObject_3 的N個實例。 。 。 1個實例MainObject - > N個RelatedObject_20的實例。

現在所有的關係都是「有 - 有」關係,而不是「IS-A」關係。這不是一個親子關係。

相關對象在系統中有其獨立的事務功能流程。 現在我應該在我的MainObject.hbm.xml中爲這20個相關對象創建Bags/Sets/Lists /。 用於從MainObject訪問它們的數據。

如果我創建一個包/設置/列表 - 我想確保在保存或更新MainObject時數據不保存/保留在數據庫中。在這種情況下使用哪些屬性是有意義的。

回答

1

使用

  • bag無序可能複製
  • set無序沒有複製
  • list時下令可能複製

,並設置cascade="none"防止級聯的任何操作(保存,更新,...)

+0

但由於相關實體的交易流程是獨立的,它是一個很好的做法,包括皮包一樣?這不會增加對象圖嗎? – 2012-03-27 10:49:19

+0

如果您經常需要將主對象與相關對象一起使用,則更容易建立關係,因爲您可以使用獲取路徑來快速加載帶有相關數據的主對象。此外,Cascade =「none」可確保在CUD主對象時未觸及相關對象。 – Firo 2012-03-27 16:51:41

+0

謝謝。這回答了我的問題。 – 2012-03-28 04:11:56