A {
@OneToMany(cascade = CascadeType.ALL)
List<B> listB;
}
假设A有一个B列表,如果我使用A.setListB(anotherList)
更新A,原始列表B中的项目仍然在数据库中,我该怎么做才能自动删除不在新列表B中的项目B我更新A?
答案 0 :(得分:0)
尝试在注释中使用orphanRemoval=true
答案 1 :(得分:0)
使用JPA,您通常不会重新分配列表/集合变量,因为这会导致错误。这是由于JPA提供商&#34;追踪&#34;从数据库加载对象时的集合。相反,你应该这样做:
listB.clear();
listB.addAll(otherList);
根据其他答案的建议与orphanRemoval=true
相结合,它应该按照您希望的方式运作。