2012년 3월 4일 일요일

[Hibernate] Hibernate 4 에서의 getSessionFactory

Hibernate 4.0 메뉴얼상의 HibernateUtil 
-------------------------------------------------------------------------
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
/**
 * http://docs.jboss.org/hibernate/core/4.0/manual/en-US/html_single/
 */
public class HibernateUtil {
    private static final SessionFactory sessionFactory = buildSessionFactory();
    private static SessionFactory buildSessionFactory() {
        try {
            // Create the SessionFactory from hibernate.cfg.xml
            return new Configuration().configure().buildSessionFactory();
        }
        catch (Throwable ex) {
            // Make sure you log the exception, as it might be swallowed
            System.err.println("Initial SessionFactory creation failed." + ex);
            throw new ExceptionInInitializerError(ex);
        }
    }
    public static SessionFactory getSessionFactory() {
        return sessionFactory;
    }
}
-------------------------------------------------------------------------
하지만 buildSessionFactory() 가 deprecation 된 상태이다
Deprecated. Use buildSessionFactory(ServiceRegistry) instead
라고나와있다
그래서 새로운 소스로 대체하였다.
-------------------------------------------------------------------------
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;
/**
 * http://stackoverflow.com/questions/8621906/is-buildsessionfactory-deprecated-in-hibernate-4
 */
public class HibernateUtil {
private static final SessionFactory sessionFactory = buildSessionFactory();
private static SessionFactory buildSessionFactory() { try { Configuration configuration = new Configuration(); configuration.configure(); ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry(); SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry); return sessionFactory; } catch (HibernateException ex) { System.err.println("Initial SessionFactory creation failed." + ex); throw new ExceptionInInitializerError(ex); } }
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}

댓글 없음:

댓글 쓰기