我有很多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