HIbernate + varios BDs

4 respostas
L

bom dia,

Estou com o seguinte problema:

Tenho uma aplicação WEB utilizando Hibernate, Struts e JSTL no servidor TOMCAT, que o meu cliente (e Testador) quer que tenha uma função em que ele escolha a qual base de dados irei me conectar (Desenvolvimento ou Produção).

Gostaria de saber se alguem sabe como eu faço o hibernate enxergar isso para que dependendo da opção que ele escolher, SOMENTE ELE acesse aquele banco, sem os demais usuarios que estiverem acessando aquela aplicação sejam afetados.

muito obrigado

4 Respostas

M

Faz o seguinte… No que iniciar a aplicação vc carrega os dois Session Factory e os armazenam no contexto da Aplicação.

Qdo algum usuário fizer logon e selecionar qual Base usar, daí vc coloca uma referencia para alguma das sessions factory na sessão daquele usuário.

M

Outra solução seria criar uma Factory com um método que retorna a session factory com base na seleção do usuário…

tipo vc fornece a opção para que ele escolha o bd somente no inicio da sessão e armazena a variável no msm escopo para futuras retrieves da session factory.

L

Beleza.

mas o meu problema eh…

a sessão do BD eh iniciada juntamente com o Tomcat. Para não ter perda de tempo em abrir a sessão do BD toda hora que for fazer consulta, alteração, etc.

tem como eu abrir duas sessões diferentes?? pq aih de acordo com a base de dados que o cliente quiser abrir eu seleciono uma sessão ou outra…

não sei se fui claro…

MUITO OBRIGADO

M

Sim… tem…

Vc criará as duas sessões (SessionFactroty) qdo o tomcat for iniciado…

Daí quado o usuario for logar no sistema ele deve selecionar qual bd utilizar… Vc armazera esse atributo na HttpSession.

Dai, antes de qualquer operação, vc recuperará a sessão (SessionFactroty) baseado no atributo do HttpSession através de uma factory…

Simples, não?

Criado 18 de maio de 2007
Ultima resposta 25 de mai. de 2007
Respostas 4
Participantes 2