Basically, you need to get two session factories - one for each database (data source). I found the following code: http://www.java-forums.org/jdbc/867-hibernate-multiple-databases.html , which should do the trick.
public class HibernateUtil { private static Log log = LogFactory.getLog(HibernateUtil.class); private static HashMap<String, SessionFactory> sessionFactoryMap = new HashMap<String, SessionFactory>(); public static final ThreadLocal sessionMapsThreadLocal = new ThreadLocal(); public static Session currentSession(String key) throws HibernateException { HashMap<String, Session> sessionMaps = (HashMap<String, Session>) sessionMapsThreadLocal.get(); if (sessionMaps == null) { sessionMaps = new HashMap(); sessionMapsThreadLocal.set(sessionMaps); }
source share