[resolvido]VRaptor - Corrigindo erro de lógica do goodbuy

Boa tarde…

Nao sei se vcs repararam, (ou se fiz algo de errado), mas quando eu adiciono o mesmo produto no carrinho de comprar, ele nao atualiza o valor…
Aí tentei resolver o problema fazendo:

1 - Na classe carrinho modificando e adicionando os métodos:

	public void adiciona(Item item) {
		boolean flag = true;
		
		for(Item i : itens){
			if(i.getProduto().equals(item.getProduto())){
				flag = false;
				Integer aux = i.getQuantidade();
				i.setQuantidade(aux + item.getQuantidade());				
				break;
			}
		}

		if(flag){
			itens.add(item);		
		}
		
		atualizarTotal();
	}
	
	private void atualizarTotal() {
		total = 0.0;
		
		for(Item i : itens){
			total += i.getProduto().getPreco() * i.getQuantidade();
		}
		
	}

Aí beleza, vejam o que acontece agora quando eu adiciono um produto q ja esta no carrinho:

…estranho né

vc fez: i.getProduto().equals(item.getProduto()), mas sobrescreveu o método equals? se vc não fez isso… mesmo que seja o mesmo produto, se não for o mesmo objeto na memória vai dar false.

mudei pra

			if(i.getProduto().getId() == item.getProduto().getId()){

e tb n deu

dei uns print pra testar tbem os ids, se esta pegando e tal…
e está, veja:

Hibernate: select this_.id as id1_0_, this_.descricao as descricao1_0_, this_.nome as nome1_0_, this_.preco as preco1_0_ from Produto this_
Hibernate: select produto0_.id as id1_0_, produto0_.descricao as descricao1_0_, produto0_.nome as nome1_0_, produto0_.preco as preco1_0_ from Produto produto0_ where produto0_.id=?
Id do item existente: 1
Id do item q qro add: 7
Hibernate: select this_.id as id1_0_, this_.descricao as descricao1_0_, this_.nome as nome1_0_, this_.preco as preco1_0_ from Produto this_
Hibernate: select produto0_.id as id1_0_, produto0_.descricao as descricao1_0_, produto0_.nome as nome1_0_, produto0_.preco as preco1_0_ from Produto produto0_ where produto0_.id=?
Id do item existente: 1
Id do item q qro add: 9
Id do item existente: 7
Id do item q qro add: 9
Hibernate: select this_.id as id1_0_, this_.descricao as descricao1_0_, this_.nome as nome1_0_, this_.preco as preco1_0_ from Produto this_
Hibernate: select produto0_.id as id1_0_, produto0_.descricao as descricao1_0_, produto0_.nome as nome1_0_, produto0_.preco as preco1_0_ from Produto produto0_ where produto0_.id=?
Id do item existente: 1
Id do item q qro add: 8
Id do item existente: 7
Id do item q qro add: 8
Id do item existente: 9
Id do item q qro add: 8
Hibernate: select this_.id as id1_0_, this_.descricao as descricao1_0_, this_.nome as nome1_0_, this_.preco as preco1_0_ from Produto this_
Hibernate: select produto0_.id as id1_0_, produto0_.descricao as descricao1_0_, produto0_.nome as nome1_0_, produto0_.preco as preco1_0_ from Produto produto0_ where produto0_.id=?
Id do item existente: 1
Id do item q qro add: 7
Id do item existente: 7
Id do item q qro add: 7
Hibernate: select this_.id as id1_0_, this_.descricao as descricao1_0_, this_.nome as nome1_0_, this_.preco as preco1_0_ from Produto this_
Hibernate: select produto0_.id as id1_0_, produto0_.descricao as descricao1_0_, produto0_.nome as nome1_0_, produto0_.preco as preco1_0_ from Produto produto0_ where produto0_.id=?
Id do item existente: 1
Id do item q qro add: 1

mas esta com o mesmo erro…
coloquei print no somar…

adicionei o item, e apareceu de boa no console:

Item pos 0 Produto: Porta2

Agora tentei adicionar outro item (janela) e deu:

Id do item existente: 1
Id do item q qro add: 8
Item pos 0 Produto: Porta2
Item pos 1 Produto: null

resolvido…

o erro era no dao, no metodo recarrega…

ai fiz outro metodo pra pesquisar pelo id e retornar o Produto do bd…
aí deu certo