JPA / Hibernate Cascade.Remove @ManyToOne 的用例

2023-12-01

具有以下内容:

//User class...

@ManyToOne(cascade=CascadeType.REMOVE)
@JoinColumn(name="INSTITUTION_ID")
public void setInstitution(final Institution institution) {
    this.institution = institution;
}

这是否意味着删除用户对象会删除与其关联的机构对象?如果是这样的话,我不明白为什么需要这样做。举例来说,该机构有很多用户。这是否意味着删除其中一个用户会删除该机构,在这种情况下所有其他用户也会失去该机构?


你是对的,很少(如果有的话)需要将 CascadeType.REMOVE 与 ManyToMany 或 ManyToOne 一起使用,并且不可移植。 JPA 2.0 规范对此进行了如下记录:

关系建模注释限制了 级联=删除规范。 cascade=REMOVE 规范应该 仅适用于指定为 OneToOne 或 一对多。将cascade=REMOVE应用于其他应用程序 关联是不可移植的。

它存在的原因可能只是没有合理的方法将允许的级联值限制为 CascadeType 枚举值的某个子集。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JPA / Hibernate Cascade.Remove @ManyToOne 的用例 的相关文章

随机推荐