我在Item和Category之間有@ManyToMany(雙向)關係。來自非擁有實體端的Cascade.ALL
class Item {
@ManyToMany(cascade = CascadeType.ALL)
Collection<Category> categories=new ArrayList<Category>();
}
class Category {
@ManyToMany(mappedBy="categories", cascade = CascadeType.ALL)
Collection<Item> items=new ArrayList<Item>();
}
我在兩者上都指定了CascadeType.ALL。物品是所有者。多對多關係將使用第三個表(Item_Category)
當我創建一個項目,並添加類別與項目,保存該項目內的所有類別獲得持續的項目進行映射。在連接表中還有必要的條目(如預期的那樣)。
但是,當我創建一個類別並向其中添加新項目並保存該類別時,我發現在項目和類別表中進行了必要的輸入,但在Item_Category連接表中沒有插入。因此,該關聯沒有正確創建。
這是預期的行爲嗎?如果我們在Item中添加類別,意味着關聯表將只有條目,因爲Item是關係的所有者?
感謝您的回答。那麼我只是有疑問,因爲另一種方式正常工作(即只做一個項目setCategories和保存項目創建關聯表中的條目)。 – 2013-02-17 05:20:38
無論如何,我在休眠網站上發現這個「雙向鏈接設置」這一過程對於雙向鏈接是絕對必要的。「感謝您的回答。 – 2013-02-17 06:10:45