如何解决JPA / Hibernate Cascade删除@ManyToOne的用例
没错,很少(如果曾经)需要将CascadeType.REMOVE与ManyToMany或ManyToOne一起使用。在JPA 2.0规范中记录如下:
关系建模注释限制了cascade = REMOVE规范的使用。级联=删除规范仅应应用于指定为OneToOne或OneToMany的关联。将Cascade = REMOVE应用于其他关联的应用程序不可移植。
之所以存在,可能是因为没有合理的方法将级联的允许值限制为CascadeType枚举值的某些子集。
解决方法
具有以下内容:
//User class...
@ManyToOne(cascade=CascadeType.REMOVE)
@JoinColumn(name="INSTITUTION_ID")
public void setInstitution(final Institution institution) {
this.institution = institution;
}
这是否意味着删除User对象会删除与其关联的Institution对象?如果是这种情况,我将不遵循为什么需要这样做。例如说该机构有很多用户。这是否意味着删除这些用户之一会删除该机构,在这种情况下,所有其他用户也会丢失该机构?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。