public class HibernateUtil { private static SessionFactory sessionFactory; private static Session session; /** * Crea la factoria de sesiones */ public static void buildSessionFactory() { Configuration configuration = new Configuration(); configuration.configure(); // Se registran las clases que hay que mapear con cada tabla de la base de datos configuration.addAnnotatedClass(Clase1.class); configuration.addAnnotatedClass(Clase2.class); configuration.addAnnotatedClass(Clase3.class); . . . ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings( configuration.getProperties()).build(); sessionFactory = configuration.buildSessionFactory(serviceRegistry); } /** * Abre una nueva sesión */ public static void openSession() { session = sessionFactory.openSession(); } /** * Devuelve la sesión actual * @return */ public static Session getCurrentSession() { if ((session == null) || (!session.isOpen())) openSession(); return session; } /** * Cierra Hibernate */ public static void closeSessionFactory() { if (session != null) session.close(); if (sessionFactory != null) sessionFactory.close(); } }