Alternativa D
A questão aborda conceitos fundamentais da Java Persistence API (JPA), especificamente sobre como gerenciar relacionamentos entre entidades e a propagação de operações de banco de dados.
Análise do Enunciado
O texto solicita identificar o parâmetro responsável por propagar operações de persistência. Isso significa que, ao realizar uma ação (como salvar ou excluir) em um objeto principal, o sistema deve automaticamente aplicar a mesma ação nos objetos relacionados.
Explicação Detalhada
O que é Cascade?
O atributo cascade define quais operações de persistência devem ser repassadas para as entidades associadas. Ele é utilizado em anotações de relacionamento como @OneToMany, @ManyToOne, etc.
As opções corretas de valores para este parâmetro são definidas na enumeração CascadeType, incluindo:
CascadeType.PERSIST: Salva as entidades relacionadas.CascadeType.MERGE: Atualiza as entidades relacionadas.CascadeType.REMOVE: Exclui as entidades relacionadas.CascadeType.REFRESH: Recarrega as entidades relacionadas.CascadeType.DETACH: Desacopla as entidades relacionadas.CascadeType.ALL: Aplica todas as operações acima.
Por que a Alternativa D está Correta?
A sintaxe cascade = CascadeType.ALL é a forma correta de habilitar a propagação total das operações de persistência para os objetos vinculados. Isso garante consistência no banco de dados quando se trabalha com hierarquias de objetos complexas.
Por que as outras estão incorretas?
| Opção | Problema | Explicação |
|---|
| A | Inexistente | Não existe o valor CascadeType.Many. Isso confunde tipos de coleção com tipos de cascata. |
| B | Estrutura errada | FetchType.LAZY controla o carregamento (quando buscar dados), não a propagação de operações. |
| C | Estrutura errada | FetchType.EAGER também controla carregamento imediato, não operações de persistência. |
| E | Função errada | mappedBy define qual lado é o dono do relacionamento, não a propagação de ações. |
Conclusão
Para garantir que alterações em uma entidade pai sejam refletidas automaticamente nas entidades filhas (ex: deletar um Cliente também deleta seus Pedidos), utiliza-se o parâmetro de cascata.
Portanto, a alternativa correta é a D.