diff --git a/cqrs/src/main/java/com/iluwatar/cqrs/util/HibernateUtil.java b/cqrs/src/main/java/com/iluwatar/cqrs/util/HibernateUtil.java new file mode 100644 index 000000000..9e19e05d4 --- /dev/null +++ b/cqrs/src/main/java/com/iluwatar/cqrs/util/HibernateUtil.java @@ -0,0 +1,36 @@ +package com.iluwatar.cqrs.util; + +import org.hibernate.SessionFactory; +import org.hibernate.boot.MetadataSources; +import org.hibernate.boot.registry.StandardServiceRegistry; +import org.hibernate.boot.registry.StandardServiceRegistryBuilder; + +/** + * + * @author Sabiq Ihab + * + */ +public class HibernateUtil { + + private static final SessionFactory SESSIONFACTORY = buildSessionFactory(); + + private static SessionFactory buildSessionFactory() { + // A SessionFactory is set up once for an application! + final StandardServiceRegistry registry = new StandardServiceRegistryBuilder().configure() // configures settings // + // from hibernate.cfg.xml + .build(); + try { + return new MetadataSources(registry).buildMetadata().buildSessionFactory(); + } catch (Throwable ex) { + StandardServiceRegistryBuilder.destroy(registry); + // TODO HibernateUtil : change print with logger + System.err.println("Initial SessionFactory creation failed." + ex); + throw new ExceptionInInitializerError(ex); + } + } + + public static SessionFactory getSessionFactory() { + return SESSIONFACTORY; + } + +} diff --git a/cqrs/src/main/resources/hibernate.cfg.xml b/cqrs/src/main/resources/hibernate.cfg.xml new file mode 100644 index 000000000..a6ca21983 --- /dev/null +++ b/cqrs/src/main/resources/hibernate.cfg.xml @@ -0,0 +1,15 @@ + + + + + + org.hibernate.dialect.H2Dialect + org.h2.Driver + jdbc:h2:mem:test + sa + create + + + + \ No newline at end of file