Чем orphanRemoval отличается от CascadeType.REMOVE и когда что выбрать?

JavaMiddleSpring Data JPA и HibernateСравнениеjava|spring data jpa и hibernate|orphanremoval

Что хотят услышать интервьюеры:

Сравнение: orphanRemoval стоит сравнивать с CascadeType.REMOVE по критериям читаемости, безопасности, производительности, тестируемости и поддержки командой.

Ответ:

Когда выбирать orphanRemoval: когда его свойства прямо соответствуют задаче: orphanRemoval удаляет дочерний объект при удалении из коллекции родителя.

Слабый ответ: “так принято в Spring/Java”. На собеседовании лучше объяснить ограничения и цену выбора.

@OneToMany(orphanRemoval = true)

Источники

Похожие вопросы