
it.amattioli.dominate.hibernate.HibernateSessionManager Maven / Gradle / Ivy
The newest version!
package it.amattioli.dominate.hibernate;
import it.amattioli.dominate.sessions.ConcurrencyException;
import it.amattioli.dominate.sessions.ConnectionException;
import it.amattioli.dominate.sessions.SessionManager;
import it.amattioli.dominate.sessions.SessionMode;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import org.apache.commons.collections.Closure;
import org.apache.commons.lang.StringUtils;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.StaleObjectStateException;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.exception.JDBCConnectionException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Can be used to retrieve a Hibernate session with a defined life-cycle.
* Two different life-cycles are possible: long running and thread local
* Sessions with a thread local life cycle are created and destroyed in the
* current thread, wile long-running sessions, at the end of the current thread,
* disconnect their database connection and can be reconnected in a new thread.
*
* @author a.mattioli
*
*/
public class HibernateSessionManager implements SessionManager {
private static final Logger logger = LoggerFactory.getLogger(HibernateSessionManager.class);
private static SessionFactory sessionFactory;
private static Configuration cfg;
private static String cfgResource;
private static final ThreadLocal
© 2015 - 2025 Weber Informatics LLC | Privacy Policy