我有 JPA 实体这样的关系:
public class SuperParent {
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, orphanRemoval = true)
@JoinColumn(name = "parent_id")
@Builder.Default
private Set<Parent> parents = new HashSet<>();
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, orphanRemoval = true)
@JoinColumn(name = "super_parent_id")
private Set<Child> children = new HashSet<>();
}
public class Parent {
@OneToMany(mappedBy= "parent" cascade = CascadeType.ALL, fetch = FetchType.EAGER, orphanRemoval = true)
@Builder.Default
private Set<Child> children = new HashSet<>();
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "super_parent_id")
private SuperParent superParent;
}
public class Child {
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "parent_id")
private Parent parent;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "super_parent_id")
private SuperParent superParent;
}
当我调用 childRepository.deleteById()
时,删除操作不会删除子实体,我不知道是什么问题。