@ManyToMany 映射

来源:互联网 发布:淘宝买东西往哪里存钱 编辑:程序博客网 时间:2024/05/24 04:05

@ManyToMany 在对象关系中很常见。我觉得它有两个特点:

  1. 必须使用 JoinTable, 否则没有办法表示
  2. 在 cascade 操作时要小心。

举例:

张三、李四都选了数学课。上到一半,张三退学了。如果在 @ManyToMany 中设置为 cascade = CascadeType.ALL,则在删除张三时,会把数学课也删除。所有的学生都没有数学课上了。

Cascade 的建议

在 Cascade 时,不要 cascade = CascadeType.ALL
而是要:

cascade ={CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH}

另外,在设计 JoinTable ,定义外键时,要加上 on delete cascade; 保证父记录(外键指向的记录)被删除时,子记录(JoinTable 中的记录)也被删除。

0 0
原创粉丝点击