Eu tenho uma tabela de Clientes e pendurada nela uma tabela de Dependentes. Pra isso criei um relacionamento OneToMany unidirecional. Quando incluo ou altero um dependente do cliente, o hibernate inclui ou altera corretamente na tabela. Porém, quando e excluo um dependente e dou um merge no cliente, o hibernate não exclui o dependente da tabela, ele apenas seta null no campo de relacionamento com o cliente na tabela de dependentes.
Eu não quero este comportamento, quero que o dependente seja excluído da tabela. Como faço isso?
Então, como o renan falou acima da uma olhada nas operações de CASCADE, lá existem varias opções e uma delas é em caso de DELETE, UPDATE, e até mesmo ALL, que é um cascade geral que tudo que é feito no objeto pai é refletido para o objeto filho.
Falou.
E
eliflavio
Caio Vinicius:
Bom dia
Então, como o renan falou acima da uma olhada nas operações de CASCADE, lá existem varias opções e uma delas é em caso de DELETE, UPDATE, e até mesmo ALL, que é um cascade geral que tudo que é feito no objeto pai é refletido para o objeto filho.
Eu quero excluí-lo da coleção de dependentes e também removê-lo do banco de dados, pois não faz sentido existir um dependente sem estar vinculado a um cliente. Eu li o artigo, e nele tem o trecho abaixo que explica exatamente minha dúvida, porém, como faço pra setar o "“all-delete-orphan” através de annotations?
" In our case, a Child cannot exist without its parent. So if we remove a Child from the collection, we do want it to be deleted. To do this, we must use cascade=“all-delete-orphan”.
"
C
cpdalex
Olá pessoal, estou com um problema parecido. Tenho uma tabela que há um relacionamento com ela mesma.
|Pessoa |
|==========|
|pessoa_id |
|nome |
pessoa_id_sup
Onde pessoa_id_sup identifica a pessoa superior, alguém sabe como eu posso fazer um relacionamento na classe pessoa onde eu consiga ter a lista de pessoas subordinadas. Exemplo se eu sou a pessoa 01, os meus subordinados são as pessoas onde 01 aparece no campo pessoa_id_sup.
renanreismartins
vc vai precisar de uma query pra isso
algo como:
SELECT p FROM Pessoa p WHERE p.superior = :superior
abrasssssss
C
cpdalex
Então com o relacionamento ManytoOne quando eu pesquisar uma pessoa não consigo já buscar os subordinados.
renanreismartins
pode ser tb… é que pensei numa modelagem que ja havia feito, mas tb serve…