我有一对多关系的两个实体:
父实体:
@OneToMany(mappedBy = "parent")
public List<Child> getChildren()
子实体:
@ManyToOne
@JoinColumn(name = "PARENT_ID")
public Parent getParent()
考虑以下代码(内部交易):
Child child = childRepository.findById(id).get();
Parent parent = child.getParent();
child.setParent(null);
childRepository.saveAndFlush(child);
List<Child> children = parent.getChildren();
在这种情况下,“子级”列表仍将包含子级实体,尽管该子实体已被删除。我尝试刷新存储库,保存父实体,甚至从parentRepository中获取一个新实体,这些都不起作用。
为什么子列表在保存时不会更新,并且如何在不显式删除实体的情况下确保集合是最新的(我想对集合中的实体进行进一步的操作)?