我有很多2個實體之間一對多的關係:項目和ItemCategoryHibernate的多對多連接到現有的記錄
在類項目
@ManyToMany(cascade={CascadeType.PERSIST,CascadeType.MERGE})
@JoinTable(
name="LINK_ITEM_CATEGORY",
joinColumns={@JoinColumn(name="ITEM_ID")},
inverseJoinColumns={@JoinColumn(name="CATEGORY_ID")}
)
private Set<ItemCategory> associatedCategories = new HashSet<ItemCategory>();
在課堂ItemCategory
@Column(name="NAME")
private String name;
@ManyToMany(mappedBy="associatedCategories")
private Collection<Item> comprisesExpenditure = new ArrayList<Item>();
每當我嘗試保存項目時,即使數據庫中存在相同的name
類別,添加到設置associatedCategories
的類別也會被保存。有沒有什麼方法讓hibernate根據name
搜索類別,並創建一個與現有鏈接的鏈接,而不是創建一個新的類別和鏈接項目與新的。
這工作。我搜索了類別,如果發現將它們替換爲與該項目關聯的集合。項目和類別在此之後正確鏈接,如果尚未存在,則創建新類別。 – Sumit 2011-06-13 10:12:30