Pessoal,
Eu tenho uma aplicação web que usa Hibernate sem JPA, que faz login no banco server, mas, em tempo de execução as vezes preciso executar uma consulta no banco do cliente. Eu fiz alguma modificações na minha classe da fabrica de sessões do hibernate, mas, se estou em server e outra pessoa entra e consulta a base cliente altera a minha sessão no hibernate.
Segue a classe da fabrica de conexões:
public class ConexaoHibernate {
private static final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>();
private static SessionFactory sessionFactory = null;
public static Session openSession(String servidor) {
Configuration config = new AnnotationConfiguration().configure("hibernate.cfg.xml");
config.setProperty("hibernate.connection.url",servidor);
sessionFactory = config.buildSessionFactory();
threadLocal.set(sessionFactory.openSession());
return threadLocal.get();
}
public static void closeCurrentSession() {
sessionFactory.close();
threadLocal.get().close();
threadLocal.set(null);
}
public static Session getInstance() {
FacesContext facesContext = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest) facesContext.getExternalContext().getRequest();
HttpSession sessionConfig = request.getSession();
String url = (String) sessionConfig.getAttribute("configDeAcesso");
if(sessionFactory == null || sessionFactory.isClosed()) {
openSession(url);
}
threadLocal.set(sessionFactory.openSession());
return threadLocal.get();
}
}
Alguém consegui me dar uma dica ai?
[ ]'s a todos!