Extrait de la spécification EJB3.0 :
L'utilisation de l'élément d'annotation cascade peut être utilisée pour propager l'effet d'une opération aux entités associées. l'effet d'une opération aux entités associées. La fonctionnalité de cascade est le plus souvent utilisée dans les relations parent-enfant.
Si X est une entité gérée, l'opération de suppression la fait devenir supprimée. L'opération de suppression est répercutée en cascade sur les entités référencées par X, si les relations entre X et ces autres entités sont annotées par la valeur de l'élément d'annotation la valeur de l'élément d'annotation cascade=REMOVE ou cascade=ALL.
Donc, en résumé, les relations entre entités définies avec CascadeType.All
garantira que tous les événements de persistance tels que persist, refresh, merge et remove qui se produisent sur le parent, seront transmis à l'enfant. Définir d'autres CascadeType
fournit au développeur un niveau de contrôle plus granulaire sur la façon dont l'association d'entités gère la persistance.
Par exemple, si j'ai un objet Livre qui contient une liste de pages et que j'ajoute un objet page dans cette liste. Si l'objet @OneToMany
L'annotation définissant l'association entre le livre et la page est marquée en tant que CascadeType.All
En effet, la persistance du livre entraînerait la persistance de la page dans la base de données.