З специфікації EJB3.0 :
Використання елемента каскадної анотації може використовуватися для поширення ефекту операції на пов'язані об'єкти. Функціонал каскаду найчастіше використовується у відносинах батько-дитина.
Якщо X є керованою сутністю, операція видалення призводить до її видалення. Операція видалення каскадується до сутностей, на які посилається X, якщо зв'язки від X до цих інших об'єктів зазначаються каскадом = REMOVE або cascade = ВСЕ значення елемента анотації.
Отже, у двох словах, відносини сутності, визначені з CascadeType.All
, забезпечать, щоб усі постійні події, такі як збереження, оновлення, злиття та видалення, що відбуваються у батьків, передавалися дитині. Визначення інших CascadeType
варіантів забезпечує розробника більш детальним рівнем контролю над тим, як асоціація суб'єкта господарювання обробляє стійкість.
Наприклад, якщо у мене була книга "Об'єкт", яка містила "Список сторінок", і я додаю об'єкт сторінки в цей список. Якщо @OneToMany
анотація, що визначає зв'язок між Книгою та Сторінкою, позначена як CascadeType.All
, збереження Книги призведе до того, що Сторінка також зберігатиметься в базі даних.