spring数据删除父实体时删除子实体

xienkqul  于 2021-07-14  发布在  Java
关注(0)|答案(1)|浏览(369)

如果要删除父实体之一,则需要删除子实体。
现在孩子的实体将被删除,如果父母都被删除,我需要改变行为。
例如,如果您有:

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;
}

我试着用一些组合来删除孤儿,但没有成功。你还有别的建议吗?

6jjcrrmo

6jjcrrmo1#

我把这种逻辑简单地放在一个删除父级的方法中。它还将删除另一个父级。这种方法可以活在 Child 等级或单独服务。
请注意,当前缺少Map mappedBy 双向关系的值。

相关问题