package hibernate; import org.hibernate.SessionFactory; import org.hibernate.boot.registry.StandardServiceRegistryBuilder; import org.hibernate.cfg.Configuration; import org.hibernate.service.ServiceRegistry; import java.util.Properties; @SuppressWarnings("unused") final class HibernateUtil { private static final SessionFactory SESSION_FACTORY = buildSessionFactory(); private HibernateUtil() { } public static SessionFactory getSessionFactory() { return SESSION_FACTORY; } public static void shutdown() { getSessionFactory().close(); } private static SessionFactory buildSessionFactory() { try { Configuration configuration = new Configuration().configure(); Properties properties = configuration.getProperties(); ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(properties).build(); return configuration.buildSessionFactory(serviceRegistry); } catch (Throwable ex) { throw new ExceptionInInitializerError(ex); } } }