У меня есть две сущности, которые находятся в отношениях один-ко-многим:
Родительский объект:
@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, но ни один из них не сработал.
Почему список детей не обновляется при сохранении, и как я могу убедиться, что коллекция обновлена без явного удаления объекта (я хочу выполнить дальнейшие операции над объектами в коллекции)?