具有以下内容:
//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(使用前将#替换为@)