Dar baixa no Estoque

Fala ai galera,

Estou com uma dúvida referente a baixa no estoque.
Seguinte, eu tenho no meu formulário de venda uma Jtable que recebe todos os produtos que o cliente deseja comprar, por fim salvo todos os dados no banco. Com isso gostaria que cada produto vendido, que dê uma baixa direto na tabela de produto especificamente na quantidade. Estou usando hibernate, só que estou com dúvida como fazer este upadete no hibernate.
Espero que fui claro na minha explicação, mas qualquer coisa estou a deposição e desde já agradeço pela atenção.

Alguém pode-me ajudar, estou precisando muito galera.
vlw

Uma possibilidade…

[code]public void saveVenda(VendaJB venda){
this.manager = MeuEntityManager.getEntityManager();
ProdutoJB baixar;
List litens = venda.getItens(); // minha lista de itens
this.manager.getTransaction().begin();
try {

		for(ItemJB item : litens) {				
					
			baixar = this.manager.find(ProdutoJB.class, item.getProduto().getCodProduto()); // faço uma busca pelo id do produto que será alterado.
			baixar.setQuantidadeLoja(baixar.getQuantidadeLoja() - item.getQuantidadeItem()); // faço a subtração				
			this.manager.merge(baixar);				
		}
		
		this.manager.merge(venda);
		
		this.manager.getTransaction().commit();
	} catch (Exception e) {
		this.manager.getTransaction().rollback();
		e.printStackTrace();
	}
}[/code]

henriquejhc,

O que vai fazer this.manager = MeuEntityManager.getEntityManager();
Sabe sou iniciante em java, porém tem algumas coisas que não conheço ainda, mesmo assim pesquisei não achei nada que explica ele.

Você ustá usando hibernate ou jpa?

Esse MeuEntityManager.getEntityManager(); é onde estou pegando uma instância do meu Singleton.
Exemplo simples:

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

public class MeuEntityManager {
	
    public static String DEFAULT_UNIT_NAME = "NomeDoSeuPersistenceUnit";
    
    private static EntityManagerFactory emf = null;
    
    public static EntityManager getEntityManager() {
        if( emf == null ){
        	System.out.println("Criando o EntityManagerFactory");
        	init();
        	System.out.println("EntityManagerFactory Criado");
        }
        return emf.createEntityManager();
    }   
    
    private static void init() {
       emf = Persistence.createEntityManagerFactory(DEFAULT_UNIT_NAME);
    }
    .....
    .....
}

Para você utilizar…

public void save(Object object){
    EntityManager manager = MeuEntityManage.getEntityManager(); // pego a instância do meu EntityManager
    manager.getTransaction().begin(); // abro a transação
    try{
        manager.persist(object); // persisto o objeto
        manager.getTransaction().commit(); // comito 
    } catch  (Exception e) {  
        manager.getTransaction().rollback(); // caso ocorra algum erro faço o rollback   
        e.printStackTrace();  
     }
}

Estou usando a Hibernate!

[quote=Lags] henriquejhc,

O que vai fazer this.manager = MeuEntityManager.getEntityManager();
Sabe sou iniciante em java, porém tem algumas coisas que não conheço ainda, mesmo assim pesquisei não achei nada que explica ele.[/quote]

Sinceramente,

Como você está fazendo JDBC, Hibernate?

-> Quando você realizar a venda vai ter quantos produtos de cada foram vendidos
-> Então você abre conexão com o banco e vai retirar essas quantidades do estoque

Apenas isso.

Agora saber como ir até o banco e retirar essas quantidades já é outra história (JDBC ou Hibernate)

Te aconselharia dar uma estuda sobre jpa.
Tem algum conhecimento em abrir uma session no hibernate? As configurações estão prontas?

Já tenho toda configuração da Hibernate e DAO, só é como usar método UPdate da Hibernate