Na especificação EJB3.0 :
O uso do elemento de anotação em cascata pode ser usado para propagar o efeito de uma operação para entidades associadas. A funcionalidade em cascata é mais comumente usada em relacionamentos pai-filho.
Se X é uma entidade gerenciada, a operação de remoção faz com que ela seja removida. A operação de remoção é conectada em cascata às entidades referenciadas por X, se os relacionamentos de X com essas outras entidades forem anotados com o valor do elemento de anotação cascade = REMOVE ou cascade = ALL.
Portanto, em poucas palavras, os relacionamentos de entidade definidos com CascadeType.All
garantirão que todos os eventos de persistência, como persistência, atualização, mesclagem e remoção que ocorrem no pai, sejam passados para o filho. Definir outras CascadeType
opções fornece ao desenvolvedor um nível de controle mais granular sobre como a associação da entidade lida com a persistência.
Por exemplo, se eu tivesse um objeto Livro que continha uma Lista de páginas e eu adicionasse um objeto de página dentro dessa lista. Se a @OneToMany
anotação que define a associação entre Livro e Página for marcada como CascadeType.All
, persistir o Livro resultaria na persistência da Página no banco de dados.