Существует 7 вариантов опции cascade у Hibernate. Хотелось бы уточнить какого именно поведения ожидать от каждой из них. И хотя по названию эффект интуитивно ясен, но не везде так однозначно как хотелось бы.
Я опишу как я понимаю, а вы пожалуйста, поправьте меня там где я ошибаюсь, и дополните пробелы.
none (default) - никакие транзакции не приводят не к созданию, не к обновлению, не к удалению дочерних объектов.
save - при создании нового объекта дочерние так же создаются если их нет. А в остальных случаях действует опция none.
update - при обновлении объекта обновляются дочерние только если они есть и в них есть изменения. А в остальных случаях действует опция none.
save-update - 2 + 3 пункты.
delete - при удалении удаляются все дочерние.
all - 4 + 5 пункты.
all-delete-orphan - вообще не понятно что делает.
Orphan removal - если у вас ассоциация 1 ко многим, и вы хотите удалить энтити, то достаточно всего лишь убрать его из коллекции. Это полезно, когда у вас двусторонняя связь. Без этой опции надо разрывать связь с обеих сторон.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей