Opa, depois de muito esforço fiz uma compra com varios produtos, porém tava me dando um erro de nullpointer quando tava assim o meu código.
public void adicionarProduto() {
Double aux = 0.0;
compraProdutos.add(compraProduto);
for (Compra_produto p : compraProdutos) {
this.compra.setValor(p.getProduto().getPreco() * p.getQuantidade());
aux += p.getProduto().getPreco() * p.getQuantidade();
this.compra.setPrecoTotal(aux);
compraProduto = new Compra_produto(); // aqui limpava o meu produto e me vinha null, dai deixei desse modo.
}
System.out.println(aux);
}
public void adicionarProduto() {
Double aux = 0.0;
compraProdutos.add(compraProduto);
for (Compra_produto p : compraProdutos) {
compraProduto.getCompra().setValor(p.getProduto().getPreco() * p.getQuantidade());
aux += p.getProduto().getPreco() * p.getQuantidade();
compraProduto.getCompra().setPrecoTotal(aux);
}
System.out.println(aux);
}
perfeito ai salva 1 produto,
@Transacional
public void salvar() {
if (compra.getCodigo() == null) {
compraDao.salvar(compra);
Compra compraCodigo = compraDao.buscarPorCodigo(compra.getCodigo());
for (Compra_produto item : compraProdutos) {
compraProduto.setCompra(compraCodigo);
compraProdutoDao.salvar(item);
}
} else {
}
this.compra = new Compra();
this.compraProduto = new Compra_produto();
}
beleza, agora no meu html tenho uma lista de produto dentro do selectOneMenu, e quando eu escolho um produto, por exemplo produto de teste, vo la escolhi ele coloquei a quandade 5 e já vem com o preço unitário do produto, Exemplo
Produto: teste, quantidade:5, preço 100.00;
Depois quero inserir outro produto para comprar, e na minha lista de produto e escolho outro exemplo radio. ai os 2 produtos viram o mesmo produto, o produto que adicionei primeiro muda para o nome e quantidade e preço unitario do 2 produto que estou comprando, como resolver isso?