【问题标题】:JPA / Hibernate Cascade.Remove use case for @ManyToOneJPA / Hibernate Cascade.Remove @ManyToOne 的用例
【发布时间】:2012-05-16 14:04:03
【问题描述】:

以下内容:

//User class...

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

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

【问题讨论】:

    标签: hibernate jpa many-to-one


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2019-02-24
      • 2016-03-08
      • 2021-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-11
      • 2021-06-15
      相关资源
      最近更新 更多