Ответ 1
Cascade DELETE означает, что если этот объект удален, удалите связанный объект или объекты.
DELETE_ORPHAN означает, что объект удаляется из связанной коллекции "один ко многим", а затем не только отключает его от текущего объекта, но и удаляет его.
Чтобы дать вам пример, рассмотрите два объекта: "Дом и комната".
УДАЛИТЬ в списке номеров в Доме означает, что если вы удалите Дом, удалите все его номера.
DELETE_ORPHAN в списке номеров в доме означает, что если вы удалите комнату из этой коллекции, полностью удалите ее. Без него Комната все еще существовала, но не была бы привязана ни к чему (отсюда "сирота" ).
В терминах моделирования UML и OO это в основном разница между композицией и агрегацией. Соотношение "Дом- > Комната" - пример композиции. Комната является частью Дома и не существует независимо.
Примером агрегации является, скажем, класс (родительский) для ученика (дочерний элемент). Удалить класс и Студент все еще существует (несомненно, в других классах). Удаление ученика из класса обычно не означает его удаление.