我在两个实体(例如父级和子级)之间有一个OneToMany关系,级联= CascadeType.ALL。
当我从“父母”中删除时,我得到了删除的父母数,但没有删除受影响的孩子。我可以拿那个号码吗?怎么样?
这是我正在做的事情的粗略想法:
@Entity
class Parent {
@Id
Integer id;
String field;
@OneToMany(mappedBy="parent", cascade=CascadeType.ALL)
Set<Child> children;
}
@Entity
class Child {
@ManyToOne
Parent parent;
}
interface ParentRepository extendes CrudRepository<Parent, Integer> {
Long deleteByField(String field);
}
我可以以某种方式让deleteByField返回受影响的行总数而不是仅返回父行吗?
答案 0 :(得分:0)
我找到了解决方案-将存储库修改为
interface ParentRepository extendes CrudRepository<Parent, Integer> {
Set<Parent> deleteByField(String field);
}
这将返回所有已删除的Parent对象。然后,我可以浏览每个父级中的.children,以查看有多少个(分别)。
我担心这样做效率不高,因为它会检索所有对象,因此,如果有人有更好的主意,我想知道。