JPA / Hibernate Cascade删除@ManyToOne的用例

【字号: 日期:2024-04-03浏览:45作者:雯心
(adsbygoogle = window.adsbygoogle || []).push({}); 如何解决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对象?如果是这种情况,我将不遵循为什么需要这样做。例如说该机构有很多用户。这是否意味着删除这些用户之一会删除该机构,在这种情况下,所有其他用户也会丢失该机构?

相关文章: