2009-07-08 33 views
0

我有一個實體,一個誰擁有實體B.如何級聯保存和刪除非收集實體?

Class Entity A 
{ 
    public EntityB; 
} 

Class Entity B 
{ 
    public Entity A; 
} 

實體B已經與A.一對一的關係,我想使用級聯保存,刪除在保存實體A,使得我沒有手動保存實體B.它應該自動完成。

我的映射實體B的樣子:

<many-to-one name="EntityA" cascade="save-update" 
    column="EntityASomeProperty" class="EntityA" /> 

我不能夠自動保存實體B時省下。

回答

0

看起來你有一個從B到A的級聯,所以當你保存EntityB時,EntityA應該被保存。

如果您希望在保存EntityA時保存EntityB,則需要將該配置顛倒過來。請注意,您應該選擇一個您想要管理這種關係的方向,並始終從該方向開展工作。你可以映射兩個方向,但做一個反向,以便hibernate知道你打算從哪個方向管理它。

我還建議你使用OneToOne映射,如果這是真的。

+0

嗨,我明白了你的觀點。但我的下一個問題是在entityA上創建一對一的映射後,它將保存實體B即時通訊錯誤,該錯誤不能將null插入列的ENtityB之一。 並且該列包含entityA屬性(ENtityA Guid)。 – alice7 2009-07-09 14:11:15