Ola irei postar minha class aqui.
@Transacional
public void salvar() {
if (compra.getCodigo() == null) {
if (parcelasCompras.size() == 0) {
Mensagem.mensagemError("Lista das parcelas vazia");
} else if (compraPagamentos.size() == 0) {
Mensagem.mensagemError("Lista dos pagamentos vazia");
} else if (compraProdutos.size() == 0) {
Mensagem.mensagemError("Lista dos produtos vazia");
} else {
compraDao.salvar(compra);
Compra compraCodigo = compraDao.buscarPorCodigo(compra
.getCodigo());
for (Compra_produto cp : compraProdutos) {
cp.setCompra(compraCodigo);
Estoque estoque = cp.getProduto().getEstoque();
estoque.setQuantidade(cp.getQuantidade()
+ cp.getProduto().getEstoque().getQuantidade());
estoqueDao.atualizar(estoque);
compraProdutos = new ArrayList<Compra_produto>();
compraProdutoDao.salvar(cp);
}
for (Compra_formadepagamento cf : compraPagamentos) {
cf.setCompra(compraCodigo);
compraPagamentos = new ArrayList<Compra_formadepagamento>();
compraFormaPagamentoDao.salvar(cf);
}
for (ParcelaCompra pc : parcelasCompras) {
pc.setCompra(compraCodigo);
parcelasCompras = new ArrayList<ParcelaCompra>();
parcelaCompraDao.salvar(pc);
}
this.compra = new Compra();
this.compraProduto = new Compra_produto();
this.compraPagamento = new Compra_formadepagamento();
this.parcelaCompra = new ParcelaCompra();
Mensagem.mensagemInfo("Compra salva com sucesso");
}
}
}
O erro tava dando nessa linha
Estoque estoque = cp.getProduto().getEstoque();
estoque.setQuantidade(cp.getQuantidade()
+ cp.getProduto().getEstoque().getQuantidade());
estoqueDao.atualizar(estoque);
o erro é
Hibernate - could not initialize proxy - no Session
Ai vi uma solução e coloquei a anotação assim, na classe produto tem uma classe Estoque, ai fiz
@OneToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "estoque_codigo")
private Estoque estoque = new Estoque();
Anotação eager, só uso a lazzy, ai tive que fazer assim, está correto? o porque desse erro?