Persistencia de dados

7 respostas
dudu_sps

Eu tenho uma placa de pré venda

e hoje funciona assim
na hora que finaliza a venda
eu cadastro a venda e depois cadastro um a um o item de venda fazendo a alteração no estoque

porém… caso de algum pau na rede no meio do caminho

metade do serviço apenas fika salvo

como eu faço pra cadastrar tudo junto… a venda, os itens de venda, a alteração no estoque e o contas a receber… caso de pau na rede… o rollback funcione pra tudo???

7 Respostas

jweibe

Posta seu código! pra gente avaliar a sua situação.

LPJava

eu acho que oo problema está em falta de uma modelagem de dados. e nao de persistencia em sim.

josue_carrecon

Dudu, aqui isso eh feito quando se finaliza a venda no caso se tem dois botoes um para cancelar e um pra confirmar a venda e no caso obvio, sao feitas as confirmações, baixa etc.

dudu_sps

Olha…

o que vem ao caso é o seguinte

supondo que eu tenho uma venda

Venda -> codigo, cliente, valor… etc
ItemVenda -> codigo, Venda, Produto, desconto, valor, etc…
ContaReceber -> codigo, Venda, dataVencimento, etc

o que ta acontecendo é o seguinte
o programa ele funciona assim hoje

eu tenho duas tabela… PreVenda, PreItemVenda
e os itens são lançados todos nessas duas placas… ai sim… quando se finaliza a venda… é tudo lançado para a Venda

as minha duvidas são a seguinte

eu quero persistir isso… tudo de uma vez… caso de falha na rede… eu consiga dar o rollback de tudo

hoje não funciona assim…
o que eu faço é isso

eu cadastro a venda… e logo faço um for dos PreItemVenda e vo cadastrando no ItemVenda

mas caso tenha 100 PreItemVenda… e caia a rede no numero 20… fica os 20 cadastrado… pq eu faço um for… e em cada for eu cadastro o item
isso acontece porque é um salvar isolado… independente de um do outro

dai eu fiz uns testes… fui la e coloquei relacionamento bidirecional… q não era até então…

e descobri… q em um bean só pode ter uma lista do tipo EAGER
v
queria tirar a minhas duvidas. como persistir tudo de uma vez… q conseguir usar o rollback de maneira correta…
e o lance das listas… se não for LAZY eu tenho que carregar elas??

e a alteração no estoque?? vou ter que fazer outro metodo? e se caso falhe a rede, como voltar?

grato

alexvingg

Eu já li sobre isso, você pode criar uma transaction na hora de inserir todos seus dados, caso aconteça algum erro ela vai dar o rollback.
qual banco você está usando ?

dudu_sps

mysql

alexvingg

cara vc pode criar uma procedure no banco para fazer isso adiantaria sua vida 100%
da um sake ai …
http://www.vivaolinux.com.br/artigo/Store-Procedures-com-Transaction-no-MySQL/

Criado 16 de abril de 2011
Ultima resposta 18 de abr. de 2011
Respostas 7
Participantes 5