Existe alguma annotation Hibernate que não deixa apagar uma Entidade caso tenha algum registro dela vinculado a outra entidade?

8 respostas
javaspringhibernate
Henrique_Santos2

Exemplo: um Pedido pertence a uma Mesa, se eu apagar a mesa id 1, os pedidos que tiverem como atributo essa mesa, vão ficar com atributo null, queria não deixar apagar caso isso. existe algum annotaion ou propriedade do Hibernate pra isso?

8 Respostas

P

Se você utilizar uma chave estrangeira o própio SGBD não vai permitir que essa mesa seja apagada se a mesma estiver sendo referenciada em outra tabela.

Henrique_Santos2

pois no meu código ta permitindo, e ta bugando a lista de pedidos

P

Tem algo errado ai então, você criou as tabelas na mão ou foram geradas pelo Hibernate?

Henrique_Santos2

hibernate

D

Mostra ai então como está o relacionamento entre as tabelas.
Pqe de fato não era para deixar apagar o registro se ele estiver sendo usado.

Henrique_Santos2
@Entity

public class Mesa {

@OneToMany

private List  pedidos;

//getters e setters

}
public class Pedido{

@ManyToOne(mappedBy = pedido)

private Mesa mesa;

}

está assim, o hibernate ta deixando apagar entidade Pai, e os filhos ficam orfãos, gostaria de bloquear a exclusão da entidade pai se ele tiver filhos, sabe como resolvo?

Mike

Altera o seus atributos e ve se vai

@OneToMany
private List<Pedido> pedidos
@ManyToOne(mappedBy = "pedidos")//Com 's' no final
private Mesa mesa;
Henrique_Santos2

deu não :confused:

Criado 18 de dezembro de 2018
Ultima resposta 19 de dez. de 2018
Respostas 8
Participantes 4