Как работает orphanRemoval в JPA и чем отличается от CascadeType.REMOVE?

Middle
199 просмотров
AFK Offer AI

CascadeType.REMOVE: удаление parent → удаление всех children (в отдельных DELETE запросах через JPA). orphanRemoval=true: удаление child из коллекции parent (parent.getChildren().remove(child)) → child удаляется из БД при flush. Разница: cascade.remove срабатывает только при удалении parent. orphanRemoval — при любом отвязывании от parent, в том числе через Java код. Для owned collections (Items принадлежат Order) — orphanRemoval=true логичен. Нельзя использовать для shared entities.

Следующий вопрос

Что такое CAS-операция?