[Resolvido] JPA não respeita foreignkey do Postgres

6 respostas
marciosouzajunior

Tenho duas tabelas, familias e grupos. Uma família pode conter vários grupos (OneToMany).
No Postgres a tabela grupos tem uma coluna codigo_familia que possui uma restrição de chave estrangeira
com a coluna codigo em familias do tipo RESTRICT. Eu estou gerando as classes atraveś do banco, então
a classe família possui o seguinte trecho:

public class Familias implements Serializable {

    @OneToMany(cascade = CascadeType.ALL, mappedBy = "codigoFamilia")
    private Collection<Grupos> gruposCollection;

E na minha aplicação quando eu deleto um família que tem um grupo ligado a ela, o grupo
também é deletado em cascata, mesmo tendo a restrição no Postgres.

Alguém sabe se existe uma anotation ou algo que resolva isto?

6 Respostas

Hebert_Coelho

Retire o cascade = CascadeType.ALL e coloque apenas o que você realmente precisa.

marciosouzajunior

Funcionou aqui. Só mais uma dúvida: tenho mesmo que editar isso na mão? Não tem como ele saber que não é pra fazer o cascade?

Hebert_Coelho

marciosouzajunior:
Funcionou aqui. Só mais uma dúvida: tenho mesmo que editar isso na mão? Não tem como ele saber que não é pra fazer o cascade?
Basta não escrever uai. ^^

marciosouzajunior

É que eu não escrevo, eu clico com o botão direito > Novo > Classe de entidade do banco de dados…

Hebert_Coelho

marciosouzajunior:
É que eu não escrevo, eu clico com o botão direito > Novo > Classe de entidade do banco de dados…
Geralmente ele segue um template que pode ser editado. Você teria que rodar aí para achar isso.
Caso não ache vai ter que arrancar na unha. ^^

marciosouzajunior

É, deixa como está então, se eu precisar recriar a classe eu tiro na mão mesmo. Obrigado!!

Criado 4 de abril de 2012
Ultima resposta 4 de abr. de 2012
Respostas 6
Participantes 2