Mercurial > dive4elements > river
diff flys-backend/src/main/java/de/intevation/flys/backend/SedDBSessionHolder.java @ 3471:e4250c6e1538 2.8.1
merged flys-backend/2.8.1
author | Thomas Arendsen Hein <thomas@intevation.de> |
---|---|
date | Fri, 28 Sep 2012 12:14:40 +0200 |
parents | 76c75c8b9ee0 |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/flys-backend/src/main/java/de/intevation/flys/backend/SedDBSessionHolder.java Fri Sep 28 12:14:40 2012 +0200 @@ -0,0 +1,43 @@ +package de.intevation.flys.backend; + +import org.apache.log4j.Logger; + +import org.hibernate.Session; +import org.hibernate.SessionFactory; + +public class SedDBSessionHolder +{ + private static Logger log = + Logger.getLogger(SedDBSessionHolder.class); + + public static final ThreadLocal<Session> HOLDER = + new ThreadLocal<Session>() { + @Override + protected Session initialValue() { + return create(); + } + }; + + private SedDBSessionHolder() { + } + + public synchronized static Session create() { + log.debug("create"); + SessionFactory sessionFactory = + SessionFactoryProvider.getSedDBSessionFactory(); + return sessionFactory.openSession(); + } + + public static Session acquire() { + log.debug("acquire"); + Session session = create(); + HOLDER.set(session); + return session; + } + + public static void release() { + log.debug("release"); + HOLDER.remove(); + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :