Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*!
  * Copyright 2002 - 2013 Webdetails, a Pentaho company.  All rights reserved.
  
  * This software was developed by Webdetails and is provided under the terms
  * of the Mozilla Public License, Version 2.0, or any later version. You may not use
  * this file except in compliance with the license. If you need a copy of the license,
  * please go to  http://mozilla.org/MPL/2.0/. The Initial Developer is Webdetails.
  *
  * Software distributed under the Mozilla Public License is distributed on an "AS IS"
 * basis, WITHOUT WARRANTY OF ANY KIND, either express or  implied. Please refer to
 * the license for the specific language governing your rights and limitations.
 */
 
 package pt.webdetails.cda.utils;
 
 
 import  org.hibernate.HibernateException;
 import  org.hibernate.Session;
 import  org.hibernate.SessionFactory;
 import  org.hibernate.Transaction;
 import  org.hibernate.cfg.Configuration;

Author(s):
pedro
 
 public class PluginHibernateUtil
 {
 
   private static final Log logger = LogFactory.getLog(PluginHibernateUtil.class);
   private static Configuration configuration;
   private static SessionFactory sessionFactory;
   private static final byte[] lock = new byte[0];
   private static final ThreadLocal<Session> threadSession = new ThreadLocal<Session>();
   private static final ThreadLocal<Transaction> threadTransaction = new ThreadLocal<Transaction>();
 
 
   public PluginHibernateUtil()
   {
   }
 
 
   public static boolean initialize()
   {
 
     .debug("Initializing PluginHibernate");
 
 
     // Start our own hibernate session, copying everything from the original
      = new Configuration();
     .setProperties(HibernateUtil.getConfiguration().getProperties());
 
      = .buildSessionFactory();
 
     return true;
 
 
   }


  
Returns the SessionFactory used for this static class.

Returns:
SessionFactory
 
   public static SessionFactory getSessionFactory()
   {
 
 
   }


  
Returns the original Hibernate configuration.

Returns:
Configuration
 
   public static Configuration getConfiguration()
   {
   }


  
Rebuild the SessionFactory with the static Configuration.
 
   public static void rebuildSessionFactory() throws PluginHibernateException
   {
 
     synchronized (.)
     {
       try
       {
        . = PluginHibernateUtil.getConfiguration().buildSessionFactory();
      }
      catch (Exception ex)
      {
        .warn("Error building session factory " + Util.getExceptionDescription(ex)); //$NON-NLS-1$
        throw new PluginHibernateException("Error building session factory"ex); //$NON-NLS-1$
      }
    }
  }


  
Retrieves the current Session local to the thread.

If no Session is open, opens a new Session for the running thread.

Returns:
Session
  public static synchronized Session getSession() throws PluginHibernateException
  {
    Session s = (Session) ..get();
    try
    {
      if (s == null || !s.isOpen())
      {
        s = PluginHibernateUtil.getSessionFactory().openSession();
      }
    }
    catch (HibernateException ex)
    {
      .warn("Error creating session " + Util.getExceptionDescription(ex)); //$NON-NLS-1$
      throw new PluginHibernateException("Error creating session"ex); //$NON-NLS-1$
    }
    
    return s;
  }
  public static void flushSession() throws PluginHibernateException
  {
    try
    {
      Session s = PluginHibernateUtil.getSession();
      s.flush();
    }
    catch (HibernateException ex)
    {
      .warn("Error flushing session " + Util.getExceptionDescription(ex)); //$NON-NLS-1$
      throw new PluginHibernateException("Error flushing session"ex); //$NON-NLS-1$
    }
  }


  
Closes the Session local to the thread.
  public static synchronized void closeSession() throws PluginHibernateException
  {
    try
    {
      Session s = (Session) ..get();
      ..set(null);
      if ((s != null) && s.isOpen())
      {
        s.close();
      }
    }
    catch (HibernateException ex)
    {
      .warn("Error closing session " + Util.getExceptionDescription(ex)); //$NON-NLS-1$
      throw new PluginHibernateException("Error closing session"ex); //$NON-NLS-1$
    }
  }
New to GrepCode? Check out our FAQ X