Hibernate com dois bancos de dados [RESOLVIDO]

Salve Pessoal,

Eu estou querendo em uma aplicação onde uso hibernate trabalhar com dois bancos de dados. No site do hibernate a solução dada é: "configure multiple SessionFactory instances.

Tentei colocar no hibernate.cfg.xml um SessionFactory após o outro mas não está dando certo. Alguem tem alguma sugestão para resolver o problema?

Obrigado,

celso

Caro jcfreire

Voce cria duas classes, uima acessando o banco a e outra o banco b.
cria um arquivo de configuracao seuprojeto.properties, neste voce define uma variavel que será lida pela propriedade resourceBunble , algo assim:

#Define que banco usar
Banco = A

Este comando:

ResourceBundle rb = ResourceBundle.getBundle("seuprojeto");
String bc = rb.getString("repUs");

armazenará em bc o valor definido no arquivo de propriedade que voce poderá comparar e iniciar o banco que voce quizer…

Ex:

  if (bc.equalsIgnoreCase("A")){
      ... inicia classe do banco A...
  else
      ... inicia classe do banco B...
}

espero ter ajudado
Wellington Marinheiro

Olá Wellington,

Obrigado. Eu arrumei um outro jeito tb e estou postando. Não sei se é a maneira mais elegante, mas resolvi o problema e pode ser útil pra outras pessoas. A solução é a seguinte. Deve-se criar naturalmente dois arquivos de configuração, por exemplo hibernate.cfg.xml e hibernate1.cfg.xml.

Deve-se então criar dois HibernateUtil.java (o segundo eu chamei HibernateUtil1.java). Em cada um deles na criação do sessionFactory se pede para ler o arquivo de configuração apropriado:

sessionFactory = new Configuration().configure("hibernate.cfg.xml").buildSessionFactory();

Na seqüência, quando se desejar criar as sessões para acessar os dados se pode simplesmente utilizar:

Session session = HibernateUtil.currentSession();

ou

Session session = HibernateUtil1.currentSession();

É isso.

celso