Bom galera, o problema que tenho é o seguinte, estou implementando a parte de vendas da minha aplicação, então disponibilizo ao cliente um um dataTable com os produtos onde ele seleciona o Item e eu exibo em outro dataTable com todos os Itens que ele selecionou .
Bem, inserir o item eu consigo, o problema é no momento de inserir o 2º Item, o JSF esta criando um novo ArrayList ao inves de inserir no que já existe, dessa forma só consigo inserir 1 Item.
bem vou postar meu Bean:
@ManagedBean
@SessionScoped
public class VendaBean implements Serializable{
private EntityManager entityManager;
private Cliente clienteSelecionado;
private Produto produtoSelecionado;
private Plano planoSelecionado;
private Funcionario funcionario;
private Venda venda;
private ItensVenda itemVenda;
private List<ItensVenda> itensVenda = new ArrayList<ItensVenda>();
public void adicionaProduto(Produto produto){
System.out.println("ADD PRODUTO");
System.out.println("Size A: " +itensVenda.size());//EXIBO QTOS ITEM TEM NA LISTA
if (itensVenda.isEmpty()){
itensVenda.add(new ItensVenda(produto));
FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("itensVenda", itensVenda);
}
else{//NÃO ESTA CHEGANDO NO ELSE
FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get(itensVenda);
itensVenda.add(new ItensVenda(produto));
FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("itensVenda", itensVenda);
System.out.println("Size D: " +itensVenda.size());
}
}
/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
public Produto getProdutoSelecionado() {
return produtoSelecionado;
}
public void setProdutoSelecionado(Produto produtoSelecionado) {
this.produtoSelecionado = produtoSelecionado;
System.out.println("SET PRODUTO SELECIONADO: "+ produtoSelecionado.getDescricao());
adicionaProduto(produtoSelecionado);//CHAMO O MÉTODO QUE INSERE O PRODUTO NA LISTAGEM
@Entity
public class ItensVenda implements Serializable{
@Id @GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
@NotNull
private Double quantidade;
@NotNull
private Double valorUnit;
@NotNull
private Double valorTotalItem;
private Double porcDesc;
private Double valorDesc;
@JoinColumn(name="produto_id")
@ManyToOne
private Produto produto;
@JoinColumn(name="plano_id")
@ManyToOne
private Plano plano;
public ItensVenda(Produto produto){
this.produto = produto;
}