Olá,
Tenho dois entities com relacionamento @oneToMany, e com a propriedade cascadeType=REMOVE. No ambiente de desenvolvimento funciona bem. Ao excluir um registro pai, apaga as filhas também. O problema é quando vai para outro ambiente… dá erro de constraint, dizendo que o registro não pode ser apagado por ter registros filhos. É alguma configuração no SGDB? Tem alguma outra propriedade a sersetada?
nao existe nenhuma outra prop.
é uma restrição do banco, com ctza o registro que vc tenta apagar é chave estrangeira em outros registros assim o banco bloquea
abrassss
[quote=renanreismartins]nao existe nenhuma outra prop.
é uma restrição do banco, com ctza o registro que vc tenta apagar é chave estrangeira em outros registros assim o banco bloquea
abrassss[/quote]
Olá Renan,
Sim. Ele é chave estrangeira… mas com o cascadeType=REMOVE ele deveria remover também os filhos (chave estrangeira em outros registros), o que não acontece.
Valeu
[]´s
Sávio
exemplo:
vc tem EntidadeA, EntidadeB e EntidadeC
entao vc tem uma coleção de EntidadeC na EntidadeB
se vc remover EntidadeB todas as EntidadeC relacionadas a ela serao removidas.
mas se uma EntidadeA tiver relação com sua EntidadeB que voce deseja remover terá esse erro.
pois vc ta tentando remover EntidadeB onde EntidadeA a possui
compreendeu?
abrassss
[quote=renanreismartins]exemplo:
vc tem EntidadeA, EntidadeB e EntidadeC
entao vc tem uma coleção de EntidadeC na EntidadeB
se vc remover EntidadeB todas as EntidadeC relacionadas a ela serao removidas.
mas se uma EntidadeA tiver relação com sua EntidadeB que voce deseja remover terá esse erro.
pois vc ta tentando remover EntidadeB onde EntidadeA a possui
compreendeu?
abrassss[/quote]
Olá Renan,
Acho que entendi sim. O lance é que a relação da EntidadeB com a EntidadeA, e da EntidadeB com EntidadeC, está marcada com cascadeType=REMOVE… isso que é intrigante…
Tipo, todos os relacionamentos estão com essa marcação. Bom, se eu não tiver entendido direito seu enunciado, por favor me corrija :=D
Abraços
Sávio
amigo poste as classes e o codigo onde vc tenta fazer a deleção que ficara mais facil de ajudar…
mesmo que tenha a anotação em todas as classes nao funcionara se vc estiver tentando apagar a EntidadeB pois a anotação serve para remover todas as entidades filhas, ou seja, apagando EntidadeB vc removera todas EntidadeC, porém, EntidadeB é filha de EntidadeA, por isso nao pode ser removida.
neste caso vc deve desassociar EntidadeB de EntidadeA e entao remover EntidadeB…
abrasssss