@ManyToMany 在对象关系中很常见。我觉得它有两个特点:
- 必须使用 JoinTable, 否则没有办法表示
- 在 cascade 操作时要小心。
举例:
张三、李四都选了数学课。上到一半,张三退学了。如果在 @ManyToMany 中设置为 cascade = CascadeType.ALL,则在删除张三时,会把数学课也删除。所有的学生都没有数学课上了。
Cascade 的建议
在 Cascade 时,不要 cascade = CascadeType.ALL
而是要:
cascade ={CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH}
另外,在设计 JoinTable ,定义外键时,要加上 on delete cascade; 保证父记录(外键指向的记录)被删除时,子记录(JoinTable 中的记录)也被删除。
@ManyToMany注解常用于表示多对多的关系。本文通过实例解释了如何正确配置Cascade选项来避免意外的数据删除,并强调了在定义JoinTable时考虑外键级联删除的重要性。
2907

被折叠的 条评论
为什么被折叠?



