Pessoal, estou tentando excluir um fornecedor ja tentei fazer como alguns post e não funcionou, aparece o erro abaixo:
ERROR: Cannot delete or update a parent row: a foreign key constraint fails (banco.fornecedor, CONSTRAINT FK_7bnjd2tyey5s8d56symbi7c2l FOREIGN KEY (endereco_codigo) REFERENCES endereco (codigo))
Tentei modificando o Cascade como por exemplo;
@ManyToOne(cascade=CascadeType.PERSIST) ou ALL, tambem nao funcionou.
Classe Empresa.java
@MappedSuperclass
public class Empresa extends GenericDomain {
private static final long serialVersionUID = 1L;
@ManyToOne
@JoinColumn(nullable = true)
private Endereco endereco;`
Classe Fornecedor.java
public class Fornecedor extends Empresa {
@Column(name="responsavel_legal", length = 60, nullable = false)
private String responsavelLegal;
@Column(name="status", nullable = false)
private Boolean status;
Classe Endereco.java
public class Endereco extends GenericDomain {
private static final long serialVersionUID = 1L;
@Column(name="rua", length = 60, nullable = false)
private String rua;
@Column(name="numero", length = 4, nullable = false)
private Integer numero;
@ManyToOne
@JoinColumn(nullable = false)
private Cidade cidade;`
FornecedorBean
public void excluir(ActionEvent evento) {
try {
fornecedor = (Fornecedor) evento.getComponent().getAttributes().get("fornecedorSelecionado");
FornecedorDAO fornecedorDAO = new FornecedorDAO();
EnderecoDAO enderecoDAO = new EnderecoDAO();
endereco = fornecedor.getEndereco();
enderecoDAO.excluir(endereco);
fornecedorDAO.excluir(fornecedor);
listar();
novo();
listarEstados();
Messages.addGlobalInfo("Fornecedor removido com sucesso!");
} catch (RuntimeException erro) {
Messages.addFlashGlobalError("Ocorreu um erro ao tentar remover o fornecedor!");
erro.printStackTrace();
}
}