/* * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the * License for the specific language governing rights and limitations * under the License. * * The Original Code is available at http://www.abiquo.com/..... * * The Initial Developer of the Original Code is Soluciones Grid, S.L. (www.abiquo.com), * Consell de Cent 296, Principal 2�, 08007 Barcelona, Spain. * * No portions of the Code have been created by third parties. * All Rights Reserved. * * Contributor(s): ______________________________________. * * Graphical User Interface of this software may be used under the terms * of the Common Public Attribution License Version 1.0 (the "CPAL License", * available at http://cpal.abiquo.com/), in which case the * provisions of CPAL License are applicable instead of those above. In relation * of this portions of the Code, a Legal Notice according to Exhibits A and B of * CPAL Licence should be provided in any distribution of the corresponding Code * to Graphical User Interface. */ package com.abiquo.abiserver.business.hibernate.util; import org.apache.log4j.Logger; import org.hibernate.Criteria; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; import org.hibernate.classic.Session; import com.abiquo.abiserver.AbiConfiguration; /** * * * */ public class HibernateUtil { private static final SessionFactory sessionFactory; private static final Logger logger = Logger.getLogger(HibernateUtil.class); static { try { logger.info("Creating SessionFactory .... "); AbiConfiguration abiConfig = AbiConfiguration.getAbiConfiguration(); // Create the SessionFactory from hibernate.cfg.xml Configuration conf = new Configuration().configure("conf/hibernate.cfg.xml"); conf.setProperty("hibernate.connection.url", abiConfig.getDbUrl()); conf.setProperty("hibernate.connection.username", abiConfig.getDbUserName()); conf.setProperty("hibernate.connection.password", abiConfig.getDbPassword()); sessionFactory = conf.buildSessionFactory(); logger.info("SessionFactory created!"); } catch (Throwable ex) { // Make sure you log the exception, as it might be swallowed logger.error("Initial SessionFactory creation failed.", ex); throw new ExceptionInInitializerError(ex); } } public static SessionFactory getSessionFactory() { return sessionFactory; } public static void beginTransaction() { HibernateUtil.getSessionFactory().getCurrentSession().beginTransaction(); } public static void commitTransaction() { HibernateUtil.getSessionFactory().getCurrentSession().getTransaction().commit(); } public static void rollbackTransaction() { HibernateUtil.getSessionFactory().getCurrentSession().getTransaction().rollback(); } public static Session getSession() { return HibernateUtil.getSessionFactory().getCurrentSession(); } @SuppressWarnings("unchecked") public static Criteria createCriteria(Class clase) { return HibernateUtil.getSessionFactory().getCurrentSession().createCriteria(clase); } }