2010-05-06 63 views
0

我有使用下面的映射的三元關聯表創建:(N)休眠:刪除孤立三重關聯行時任一相關聯的行被刪除

<map name="Associations" table="FooToBar"> 
    <key column="Foo_id"/> 
    <index-many-to-many class="Bar" column="Bar_id"/> 
    <element column="AssociationValue" /> 
</map> 

我有3個表,富,酒吧,以及FooToBar。

當我從Foo表中刪除一行時,FooToBar中的關聯行(或行)會自動刪除。這很好。

當我從Bar表中刪除一行時,FooToBar中的關聯行(或行)仍然存在,並且對Bar標識的陳舊引用不再存在。這不好。

從Bar表中刪除時,如何修改我的hbm.xml以刪除陳舊的FooToBar行?

+0

你可以添加你的Foo和Bar映射嗎? – s1mm0t 2010-05-06 02:18:40

回答

0

我沒有測試過這...但你可以通過在酒吧測繪FooToBar閃避過,像這樣:

<map name="Associations" table="FooToBar"> 
    <key column="Bar_id"/> 
    <index-many-to-many class="Foo" column="Foo_id"/> 
    <element column="AssociationValue" /> 
</map> 

記住NH不知道foo1[bar1]bar1[foo1]代表同一行,所以要注意內存狀態(也就是說,不要在同一會話中訪問兩邊的元素)