@ManyToMany 映射

    xiaoxiao2025-02-08  12

    @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
    最新回复(0)