如果父实体中的一个被删除,我需要删除我的子实体。
现在,如果父母都被删除,我需要改变行为,子实体将被删除。
例如:
class Parent1 {
@Id
Long id;
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
Set<Child> children = new HashSet();
}
class Parent2 {
@Id
Long id;
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
Set<Child> children = new HashSet();
}
class Child {
@Id
Long id;
@ManyToOne
Parent1 p1;
@ManyToOne(fetch = FetchType.EAGER)
Parent2 p2;
}
我尝试使用一些组合与孤儿院移除,但它没有工作。你有其他的建议吗?
我会将这种逻辑简单地放在一个删除父元素的方法中。然后,它也会删除另一个父节点。此方法可以存在于Child
类或单独的服务上。
注意,当前您的映射缺少双向关系的mappedBy
值。