您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

JPA孤立删除不适用于OneToOne关系

JPA孤立删除不适用于OneToOne关系

级联仅对从 父级 传播到 子级的 实体状态转换有意义。在您的情况下,“父母”实际上是该协会(具有FK)的孩子。

尝试使用此映射:

@Entity
public class Parent {
  ...
  @OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL, orphanRemoval = true, mappedBy = "parent")
  private Child child;
  ...
}

@Entity
public class Child {

    @OneToOne
    @JoinColumn(name = "parent_id")
    private Parent parent;

    ...
    @Lob
    private byte[] data;
    ...
}

并且要级联删除孤儿,您现在需要:

Parent parent = ...;
parent.getChild().setParent(null);
parent.setChild(null);

甚至更好的是,在Parent实体类中使用addChild / removeChild方法

public void addChild(Child child) {
    children.add(child);
    child.setParent(this);
}

public void removeChild(Child child) {
    children.remove(child);
    child.setParent(null);
}

有关更多详细信息,请查看本文

dotnet 2022/1/1 18:14:03 有473人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶