view flys-backend/src/main/java/de/intevation/flys/backend/SedDBSessionHolder.java @ 4174:eaf83d4ae6b1

Sorted gauges for reference gauge selection in historical discharge calculation based on their name. Now, Gauge implements the Java Comparable interface and takes its name into account.
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Thu, 18 Oct 2012 13:12:24 +0200
parents 76c75c8b9ee0
children
line wrap: on
line source
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 :

http://dive4elements.wald.intevation.org