70 lines
1.2 KiB
Java
70 lines
1.2 KiB
Java
package org.thdl.lex;
|
|
|
|
import net.sf.hibernate.*;
|
|
import net.sf.hibernate.cfg.*;
|
|
|
|
|
|
/**
|
|
* Description of the Class
|
|
*
|
|
*@author Hibernate WIKI
|
|
*@created October 1, 2003
|
|
*/
|
|
public class HibernateSession
|
|
{
|
|
|
|
private static SessionFactory sessionFactory;
|
|
public final static ThreadLocal session = new ThreadLocal();
|
|
|
|
|
|
/**
|
|
* Description of the Method
|
|
*
|
|
*@return Description of the Returned Value
|
|
*@exception HibernateException Description of Exception
|
|
*@since
|
|
*/
|
|
public static Session currentSession()
|
|
throws HibernateException
|
|
{
|
|
|
|
Session s = (Session) session.get();
|
|
if ( s == null )
|
|
{
|
|
|
|
// Don't get from JNDI, use a static SessionFactory
|
|
if ( sessionFactory == null )
|
|
{
|
|
|
|
// Use default hibernate.cfg.xml
|
|
sessionFactory = new Configuration().configure().buildSessionFactory();
|
|
|
|
}
|
|
|
|
s = sessionFactory.openSession();
|
|
session.set( s );
|
|
}
|
|
return s;
|
|
}
|
|
|
|
|
|
/**
|
|
* Description of the Method
|
|
*
|
|
*@exception HibernateException Description of Exception
|
|
*@since
|
|
*/
|
|
public static void closeSession()
|
|
throws HibernateException
|
|
{
|
|
|
|
Session s = (Session) session.get();
|
|
session.set( null );
|
|
if ( s != null )
|
|
{
|
|
s.close();
|
|
}
|
|
}
|
|
|
|
}
|
|
|