home  |  suche  |  kontakt/johner  |  institut 
studierende  |  tech-docs  |  mindmailer 

HibernateSessionFactory

Diese Datei können Sie so verwenden wie sie ist. Einzig den Pfad zur Konfigurationsdatei muss eventuell angepasst werden. In dieser Form wird die Konfigurationsdatei direkt im src (und damit auch im bin) Verzeichnis, also nicht in einem Package) erwartet.

package util;

import org.hibernate.SessionFactory;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;

public class SessionFactoryUtil {
   
    private static SessionFactory sessionFactory;
     
    private static SessionFactory buildSessionFactory() {
        try {
            // Create the SessionFactory from hibernate.cfg.xml
            Configuration configuration = new Configuration();
            configuration.configure("hibernate.cfg.xml");
            System.out.println("Hibernate Configuration loaded");
             
            //apply configuration property settings to StandardServiceRegistryBuilder
            ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build();
            System.out.println("Hibernate serviceRegistry created");
             
            SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry);
             
            return sessionFactory;
        }
        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() {
        if(sessionFactory == nullsessionFactory = buildSessionFactory();
        return sessionFactory;
    }
}

Session Factory ab Hibernate 5

package util;

import org.hibernate.HibernateException;
import org.hibernate.SessionFactory;
import org.hibernate.boot.Metadata;
import org.hibernate.boot.MetadataSources;
import org.hibernate.boot.registry.StandardServiceRegistry;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;

public class SessionFactoryHibernate5 {
   private static final SessionFactory sessionFactory = buildSessionFactory();

      private static SessionFactory buildSessionFactory() {
          try {
              StandardServiceRegistry standardRegistry = new StandardServiceRegistryBuilder()
                      .configure("hibernate.cfg.xml").build();
              Metadata metadata = new MetadataSources(standardRegistry).getMetadataBuilder().build();
              return metadata.getSessionFactoryBuilder().build();

          } catch (HibernateException he) {
              System.out.println("Session Factory creation failure");
              throw he;
          }
      }

      public static SessionFactory getSessionFactory() {
          return sessionFactory;
      }
}