JPA com Hibernate precisa de usar Session?

2 respostas
T

Olá pessoal. Estou com uma dúvida, peguei este exemplo de código a baixo na web, e gostaria de saber qual a diferença de usar este métod: createSession(). Ou diretamente este: createEm(). Eu uso este último e até agora não tive problemas.
Alguém poderia me esclarecer está dúvida?

Valeu pessoal.

package persistencia;

import javax.persistence.EntityManager;   
import javax.persistence.EntityManagerFactory;   
import javax.persistence.Persistence;   
 
import org.apache.log4j.Logger;   
import org.hibernate.Session;   
import org.hibernate.ejb.HibernateEntityManager;   
  
public class HibernateUtil_MySQL {   
    private static EntityManagerFactory emf;   
  
    public static EntityManagerFactory getEmf() {   
        if (emf == null){   
            synchronized (HibernateUtil_MySQL.class) {   
                if (emf == null)   
                    try {   
                    	Logger.getLogger(HibernateUtil_MySQL.class).info(">>>EntityManagerFactory criado!");
                        emf = Persistence.createEntityManagerFactory("unidade_persistencia"); 
                    } catch (RuntimeException ex) {   
                        Logger.getLogger(HibernateUtil_MySQL.class).fatal("não foi possível carregar a unidade de persistencia", ex);   
                        throw ex;   
                    }   
            }   
        }   
        return emf;   
    }   
  
    public static EntityManager createEm() {   
        try {   
            return getEmf().createEntityManager();   
        } catch (RuntimeException ex) {   
            Logger.getLogger(HibernateUtil_MySQL.class).error("falha ao criar EntityManager", ex);   
            throw ex;   
        }   
    }   
  
    public static Session createSession() {   
        return ((HibernateEntityManager)createEm()).getSession();   
    }   
}

2 Respostas

zoren

Não, essa classe deve ser assim pq o autor necessitava utilizar os recursos do hibernate

alguns deles, como criteria e oustros q o JPA não tem (ou tinha)

T

Não, essa classe deve ser assim pq o autor necessitava utilizar os recursos do hibernate

alguns deles, como criteria e oustros q o JPA não tem (ou tinha)


Obrigado pela resposta zoren. E me desculpem, agora que eu percebi que postei a minha dúvida no lugar errado. Foi mal :?

Criado 11 de fevereiro de 2010
Ultima resposta 12 de fev. de 2010
Respostas 2
Participantes 2