Boa tarde a todos!
Estou com o problema gerado por essa exceção, tem uma relacionamento manyTomany entre essas duas entidades:
Aqui é o código da entity de Vendas
@OneToMany(cascade={CascadeType.PERSIST, CascadeType.REMOVE
,CascadeType.MERGE}, mappedBy = "vendas")
public List<VendasEstoque> getVendasEstoqueList() {
return vendasEstoqueList;
}
E aqui o de Estoque
@OneToMany(cascade={CascadeType.PERSIST, CascadeType.MERGE}, mappedBy = "estoque")
public List<VendasEstoque> getVendasEstoqueList() {
return vendasEstoqueList;
}
E aqui a tabela que liga as duas, ela possui um id proprio e auto-increment, ambas as entitys inserem alteram deletam tudo funciona perfeito.
@JoinColumn(name = "cod_venda", referencedColumnName = "cod_venda",
insertable = false, updatable = false)
@ManyToOne(optional = false,cascade={CascadeType.PERSIST, CascadeType.MERGE})
public Vendas getVendas() {
return vendas;
}
@JoinColumn(name = "cod_estoque", referencedColumnName = "cod_estoque",
insertable = false, updatable = false)
@ManyToOne(optional = false, cascade={CascadeType.PERSIST, CascadeType.MERGE})
public Estoque getEstoque() {
return estoque;
}
Certo, dai eu já tenho uma venda realizada e começo a dar add. na lista dela inserindo registros do tipo VendaEstoque, e esse registro possui a referencia a propria venda, e também ao item do estoque, eu já vi no debbug eles já tem com id que ta no banco tudo perfeito.
Dai eu vou adicionando, adicionando, ( nada de ir pro banco) e quando eu tento dar um merge na instance da venda pra ele atualizar, inserir o que tiver q ser inserido e deletado o que foi removido da lista, ele me manda um erro assim:
ERRO: valor nulo na coluna “cod_venda” viola a restrição não-nula
org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
Só que é impossível, porque cod_venda está la dentro do objeto em VendasEstoque, fora que eu estou atualizando a propria venda q possui uma lista de vendaEstoque.
Alguém pode me ajudar??
Abraços