【问题标题】:JPA Cannot update or delete parent entityJPA 无法更新或删除父实体
【发布时间】:2017-04-30 11:35:46
【问题描述】:

我正在尝试使用 JPA 将有向图保存到数据库中,并且我可以第一次创建实体,甚至在它们之间建立关联,但是一旦我尝试删除其中一个,它就会失败。

类的定义如下:

public class Node {
    @Id
    Long id;

    String name;

    Double weight;

    @OneToOne(fetch=FetchType.LAZY, optional = true)
    Node nextNode;

}

我不需要/这是双向关系。我也尝试将 nextNode 属性设置为 null,然后合并,然后删除,但它似乎不起作用并且总是给出相同的错误:无法更新或删除父级

我做错了什么?

【问题讨论】:

    标签: java jpa jakarta-ee


    【解决方案1】:

    您需要确保您要删除的节点没有被其他节点引用。 IE。将 nextNode 设置为 null 不是在被删除的节点中,而是在引用它的节点中。

    使用休眠注释的可能解决方案:

    @OnDelete(action=OnDeleteAction.CASCADE)
    

    生成外键为:“ON UPDATE NO ACTION ON DELETE CASCADE;”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-10
      • 1970-01-01
      • 1970-01-01
      • 2015-11-07
      • 2011-07-17
      • 1970-01-01
      相关资源
      最近更新 更多