У меня есть 2 сущности (Родитель и Дитя), которые имеют отношение OneToMany между ними.
У Родителя есть Список Дочерних, а у Ребенка есть Родитель.
У Дочернего элемента
@ManyToOne(fetch = FetchType.LAZY, cascade = {CascadeType.MERGE, CascadeType.PERSIST})
в поле Родитель.
Родитель имеет
@OneToMany(mappedBy="parent", cascade = CascadeType.ALL, orphanRemoval = true)
в списке Дочерних.
Я хочу найти способ заменитьРодитель одного ребенка с другим Родителем.(т.е. измените Parent of ChildA с ParentA на ParentB)
Поскольку я хочу следовать списку Parent, я хочу удалить дочернего элемента из списка.Проблема заключается в том, что даже если я сначала добавлю ChildA в список ParentB, установите поле Parent для ChildA в ParentB и только после этого удалите его из списка Child ParentA, поскольку каким-то образом он полностью удаляет Child (очевидно, из-за OrphanRemoval)
Как сделать этот своп без изменения конфигурации спящего режима и с удалением из списка ParentA (OrphanRemoval и т. Д.)?
EDIT
Я предпочитаю избегать использования entityManager.flush ()