Hibernate com JPA sem o arquivo hibernate.cfg.xml

4 respostas
J

Galera comprei um livro que explica como usar o Hibernate com JPA e spring, o exemplo funcionou normal, usa os métodos da jpa, merge, remove, etc e EntityManager.

mas em nenhum momento foi configurado um arquivo no hibernate, até então todos que estudei sempre configurava o hibernate.cfg.xml mesmo usando annotations, é totalmente dispensável o hibernate.cfg.xml :?:

parece que tudo é feito no xml do spring, quem puder esclarecer.

4 Respostas

M

Não sei muita coisa sobre spring mas com o JPA vc pode ou configurar tudo no arquivo persistence.xml se quiser. Ou pode usar o do hibernate. Isso é opcional. Eu acho até que deve dar para usar os dois, mas não sei o que seria melhor.

H

ola,
usando hibernate com jpa, é dispensavel realizar as configurações em hibernate.cfg.xml, tudo é feito no persistence.xml. Usando o spring + jpa + hibernate, todas as configurações são realizada no applicationContext, dispensando assim persistence.xml .

Herrera

P

lembrando que se voce nao usa o persistence.xml e sim o application context, esta amarrado a JPA. mas nao acho grande problema, depois é facil tirar essa configuracao do spring se voce quiser.

R

Salve, salve pessoal. Bom JavaTux, muito interessante sua pergunta. A resposta é SIM. O hibernate.cfg.xml é totalmente dispensável. Abaixo segue um exemplo de como fazer isso.

package br.com.guj.utils;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;

/**
 *
 * @author Rodrigo Dantas Nunes - MedSource Consultoria e Desenvolvimento
 *
 */
public class ConnectDB {
    
    private static final SessionFactory sessionFactory;    
    private static final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>();
    
    static {
        try{                  

            Configuration configuration = new AnnotationConfiguration()
            .addAnnotatedClass(br.com.guj.entidades.Usuario.class)
            .addAnnotatedClass(br.com.guj.entidades.Moderador.class)
            .addAnnotatedClass(br.com.guj.entidades.Administrador.class);
            
            configuration.setProperty("hibernate.connection.url","<SUA URL>");
            configuration.setProperty("hibernate.connection.driver_class", "<SEU DRIVER>");
            configuration.setProperty("hibernate.connection.username", "< USUARIO DO SGBD>");
            configuration.setProperty("hibernate.connection.password","<SENHA DO USUARIO>");
            configuration.setProperty("hibernate.dialect","<DIALETO DO SGBD>");
            
            sessionFactory = configuration.buildSessionFactory();

        }catch (Throwable t){
            throw new ExceptionInInitializerError(t);
        }
    }
    
    public static Session getInstance(){
        Session session = (Session) threadLocal.get();
        session = sessionFactory.openSession();
        threadLocal.set(session);        
        return session;
    }
    
}

Usei como referencia para montar este exemplo o site do Hibernate: http://www.hibernate.org/hib_docs/annotations/reference/en/html_single/#setup-configuration

Espero ter contribuido…Abraços

Rodrigo.

Criado 6 de março de 2008
Ultima resposta 8 de mar. de 2008
Respostas 4
Participantes 5