@ManyToMany 在对象关系中很常见。我觉得它有两个特点:
必须使用 JoinTable, 否则没有办法表示在 cascade 操作时要小心。
举例:
张三、李四都选了数学课。上到一半,张三退学了。如果在 @ManyToMany 中设置为 cascade = CascadeType.ALL,则在删除张三时,会把数学课也删除。所有的学生都没有数学课上了。
Cascade 的建议
在 Cascade 时,不要 cascade = CascadeType.ALL 而是要:
cascade ={CascadeType
.MERGE, CascadeType
.PERSIST, CascadeType
.REFRESH}
另外,在设计 JoinTable ,定义外键时,要加上 on delete cascade; 保证父记录(外键指向的记录)被删除时,子记录(JoinTable 中的记录)也被删除。
转载请注明原文地址: https://ju.6miu.com/read-1296208.html