package hibernateTest.models;
import org.hibernate.SessionFactory;
import org.hibernate.boot.MetadataSources;
import org.hibernate.boot.registry.StandardServiceRegistry;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import javax.inject.Singleton;
@Singleton
public class SessionFactoryManager {
private static SessionFactoryManager theInstance = null;
private static SessionFactory sessionFactory;
private SessionFactoryManager(){
setUp();
}
public static SessionFactoryManager getInstance(){
if(theInstance == null){
theInstance = new SessionFactoryManager();
}
return theInstance;
}
public static void setUp() {
// A SessionFactory is set up once for an application!
final StandardServiceRegistry registry = new StandardServiceRegistryBuilder()
.configure() // configures settings from hibernate.cfg.xml
.build();
try {
sessionFactory = new MetadataSources( registry ).buildMetadata().buildSessionFactory();
}
catch (Exception e) {
// The registry would be destroyed by the SessionFactory, but we had trouble building the SessionFactory
// so destroy it manually.
StandardServiceRegistryBuilder.destroy( registry );
}
}
public static void tearDown() {
try {
if ( sessionFactory != null ) {
sessionFactory.close();
}
} catch (Exception e) {
System.out.println("Exception!");
}
}
}