jmanager.dal.entity.HibernateUtil.java Source code

Java tutorial

Introduction

Here is the source code for jmanager.dal.entity.HibernateUtil.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package jmanager.dal.entity;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.SessionFactoryObserver;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import utils.common.ApplicationConstants;

/**
 *
 * @author b.dang
 */
public class HibernateUtil {

    private static final SessionFactory sessionFactory;
    private static final ServiceRegistry serviceRegistry;

    static {
        try {
            Configuration config = getConfiguration();
            serviceRegistry = new StandardServiceRegistryBuilder().applySettings(config.getProperties()).build();
            config.setSessionFactoryObserver(new SessionFactoryObserver() {
                private static final long serialVersionUID = 1L;

                @Override
                public void sessionFactoryCreated(SessionFactory factory) {
                }

                @Override
                public void sessionFactoryClosed(SessionFactory factory) {
                    StandardServiceRegistryBuilder.destroy(serviceRegistry);
                }
            });
            sessionFactory = config.buildSessionFactory(serviceRegistry);
        } catch (Throwable ex) {
            System.err.println("Initial SessionFactory creation failed." + ex);
            throw new ExceptionInInitializerError(ex);
        }
    }

    public static Session openSession() {
        return sessionFactory.openSession();
    }

    private static Configuration getConfiguration() {
        Configuration cfg = new Configuration();
        cfg.addAnnotatedClass(Contact.class);
        cfg.setProperty("hibernate.connection.driver_class", ApplicationConstants.DatabaseConfig.Driver.GetValue());
        cfg.setProperty("hibernate.connection.url", ApplicationConstants.DatabaseConfig.URL.GetValue());
        cfg.setProperty("hibernate.connection.username", ApplicationConstants.DatabaseConfig.UserName.GetValue());
        cfg.setProperty("hibernate.connection.password", ApplicationConstants.DatabaseConfig.Password.GetValue());
        cfg.setProperty("hibernate.show_sql", ApplicationConstants.DatabaseConfig.ShowSQL.GetValue());
        cfg.setProperty("hibernate.dialect", ApplicationConstants.DatabaseConfig.Dialect.GetValue());
        cfg.setProperty("hibernate.hbm2ddl.auto", ApplicationConstants.DatabaseConfig.Auto.GetValue());
        cfg.setProperty("hibernate.cache.provider_class", ApplicationConstants.DatabaseConfig.Provider.GetValue());
        cfg.setProperty("hibernate.current_session_context_class",
                ApplicationConstants.DatabaseConfig.Session.GetValue());
        return cfg;
    }
}