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