E ai pessoal blz, Estou fazendo uma aplicação que eu tenho uma <p:dataTable id=“ItensDisponiveis” …> com vários itens listados com um <p:commandLink value=“Add” …> que adiciona o item selecionado para outra lista que seria a de pedido. tudo funciona bem, o que acontece é que quando eu pego o objeto da primeira table e uso um item.setQuantidade(1); para salvar apenas a quantidade x deste produto na segunda <p:dataTable id=“pedido” …>, ele automaticamente muda o valor da minha coluna no banco de dados . ou seja por exemplo eu tenho 50 unidades de mouse microsoft na primeira lista, ai quando vou adicionar mando o objeto selecionado por parâmetro e dentro do método eu mudo o valor que era 50 para 1 por exemplo para a quantidade deste item no pedido. Entretanto quando eu faço isso a quantidade do meu item na tabela item vai a 1 também(e que deveria manter em 50), desculpe se já existir algum tópico sobre isso mas é que nem sei bem como explicar ou procurar o que está acontecendo. Estou usando Hibernate + JSF2 + PrimeFaces.
obs: não estou fazendo nenhuma operação no banco neste instante, estou teoricamente apenas manipulando dados no bean entre tables.
Só se for automático com o hibernate pois manualmente eu não tenho eu cheguei até a comentar o conteúdo do saveOrUpdate da classe Item.
e o método só faz isso:
Não está muito organizado pois ainda estou só testando mesmo, coloquei apenas o , o ponto são as 2 <p:dataTable>, o resto não é importante e nem fiz ainda.
Obrigado pela ajuda.
Descobri que o que acontece é que o Hibernate sincroniza os objetos persistentes e se você o alterar ele automaticamente atualiza no banco de dados. Agora preciso descobrir como fazer um objeto virar transient.
[quote=Rakde]Descobri que o que acontece é que o Hibernate sincroniza os objetos persistentes e se você o alterar ele automaticamente atualiza no banco de dados. Agora preciso descobrir como fazer um objeto virar transient.
[/quote]
Criei um objeto auxiliar passando apenas os atributos desejados assim o novo objeto permaneceu transient e o hibernate não dava update no valor que eu queria manter!.
Obrigado pessoal.