在我的数据库中,我有两个表Book和Label,它们之间具有ManyToMany关系。我已经使用ManyToMany和CascadeALL的注释在 Hibernate 中成功映射了它们。
现在考虑这种情况。
当我添加一本带有标签列表的新书时。标签列表包含现有标签和新标签。当书籍保存在数据库中时,它会创建现有标签的重复条目。[意味着每次都会使用不同的主键创建新标签(即使是现有标签),而不是使用现有和更新的多对多表的引用]。我希望 Hibernate 更新现有标签并创建新标签。类似地,ManyToMany 表也会自行更新。
我可以想到手动完成的解决方案。
session.update()并保存新使用session.save() 但我相信这是一个解决方案,涉及很少的冗长编码和不必要的处理,并且可以改进。
Hibernate 是否提供了一些内置功能来解决这个问题以及如何改进我的解决方案。
这是我的图书实体
@Entity
@XmlRootElement
public class Book {
@Id
@GeneratedValue
private int bookID;
private String bookName;
private String bookDescription;
private String bookAuthor;
private String bookEdition;
private String bookDownloadURL;
private String bookImageURL;
@ManyToMany(cascade = { CascadeType.ALL })
@JoinTable(name = "book_label", joinColumns = { @JoinColumn(name = "books_bookID") }, inverseJoinColumns = {
@JoinColumn(name …Run Code Online (Sandbox Code Playgroud)