假设我们有一个Post
类,其标记引用为List
:就像这样(Original source):
@ManyToMany(cascade = {
CascadeType.PERSIST,
CascadeType.MERGE
})
@JoinTable(name = "post_tag",
joinColumns = @JoinColumn(name = "post_id"),
inverseJoinColumns = @JoinColumn(name = "tag_id")
)
private List<Tag> tags = new ArrayList<>();
为什么我们需要CascadeType.MERGE
?这是因为,例如,我们从列表中删除标签,然后我们保留帖子,因此我们希望结果“合并”(从多个连接表中的帖子中取消映射标签)与当前数据库状态?