Ajuda conexao jpa (toplink)

0 respostas
fabioebner

Pessoal fiz a seguinte classe

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.dnasolution.dao;

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

/**
 *
 * @author Administrador
 */
public class Conexao {

    private static Conexao instancia;
    private static EntityManagerFactory emf;
    
    
    public EntityManager conectar(){
        emf = Persistence.createEntityManagerFactory("CaixaNovoPU");
        return emf.createEntityManager();
    }
    
    public static void beginTransacao(EntityManager em){
        em.getTransaction().begin();
    }
    
    public static void commitTransacao(EntityManager em){
        em.getTransaction().commit();
    }
    
    public static void rollbackTransacao(EntityManager em){
        em.getTransaction().rollback();
    }
    
    public static void fecharConexao(EntityManager em){
        em.close();
    }
    
    public static Conexao getInstance() {
        if (instancia == null) {
            instancia = new Conexao();
        }
        return instancia;
    }

    
    public static void persist(Object obj, EntityManager em) throws Exception {
        try {
            em.persist(obj);
            em.flush();
        } catch (Exception ex) {
            throw new Exception("Erro ao inserir o objeto");
        }
    }

    public static void update(Object obj, EntityManager em) throws Exception {
        try {
            em.merge(obj);
        } catch (Exception ex) {
        throw new Exception("Erro ao alterar o objeto");
        }
    }

    public static void delete(Object obj, EntityManager em) throws RollbackException, Exception {
        try {
            obj = em.merge(obj);
            em.remove(obj);
        } catch (RollbackException rEx) {
            throw new RollbackException();
       
        } catch (Exception ex) {
            throw new Exception("Erro ao inserir o objeto");
        }
    }
}

agora eu quero fazer o seguinte:

entity = Persistence.createEntityManagerFactory("CaixaNovoPU");
  Conexao.beginTrasacao(entity);
  Conexao.persit(objeto1);


 ***************

 Aqui eu quero salvar um objeto em banco porem nao quero q faca parte dessa transacao, tipo mesmo se a transacao q eu abri ali em cima nao der certo o q eu fizer aqui eu deixo salvo no banco. entendeu eu tenho q criar outra conexao com o banco.. ou tem como eu fazer com essa q eu ja tenho.. abrindo outra transacao e fechando aqui mesmo?/



 ************

  Conexao.commitTransacao(entity);

obrigado

Criado 17 de setembro de 2008
Respostas 0
Participantes 1