Pessoal,
Preciso configurar duas bases de dados para o hibernate ao mesmo tempo. Como poderia fazer isso?
Abs
Renan
Pessoal,
Preciso configurar duas bases de dados para o hibernate ao mesmo tempo. Como poderia fazer isso?
Abs
Renan
Crie quantas instâncias de SessionFactory for necessário.
Como eu defino a conexão a ser utilizada definida no hibernate.properties para cada SessionFactory?
Você tem algum código de exemplo?
Abs
Renan
Exatamente, você configura a conexão com o banco em cada hibernate.cfg.xml que vai ser passado para o SessionFactory.
abstract HibernateUtil
/* Crie essa classe para manipular suas SessionFactory tal como adquirir a sessao, fechar sessao, iniciar transações e etc..*/
DB1Helper extends HibernateUtil
private static SessionFactory sessionFactory = new Configuration().configure( "br/com/app/DAO/hibernateDB1.cfg.xml" ).buildSessionFactory();
//Use os métodos de HibernateUtil
DB2Helper extends HibernateUtil
private static SessionFactory sessionFactory = new Configuration().configure( "br/com/app/DAO/hibernateDB2.cfg.xml" ).buildSessionFactory();
//Use os métodos de HibernateUtil
Dai agora quando for usar o banco 1 faça DB1Helper.getSession().createCriteria … e quando for usar o banco dois faça DB2Helper.getSession().createCriteria … e assim por diante.
Mais ou menos isso, deu para entender agora?
Perfeito cara,
No meu caso eram arquivos .properties, e como o construtor do AnnotationConfiguration pega por default as propriedades do hibernate.properties, tive que renomear este arquivo e configura-lo manualmente, segue o código caso haja curiosidade.
Abs
Renan
AnnotationConfiguration cfg = new AnnotationConfiguration();
Properties properties = new Properties();
try {
properties.load(HibernateUtility.class.getResourceAsStream("/hibernate_config.properties"));
} catch (IOException e) {
throw new RuntimeException(e);
}
cfg.addProperties(properties);
factory = cfg.buildSessionFactory();