Galera, estou num projeto p/ sincronizar N databases, no esquema de Matriz <-> Filial. E estou [size=5]tentando[/size] usando o Hibernate.
Já tenho um pouco de familiaridade com o mesmo, com o padrão MVC/MVP, no DAO genérico já implementei os métodos p/ buscar os registros a atualizar, os que ainda não foram exportados, etc… Inclusive fiz uma implementação do HibernateUtil para a conexão nas diferentes databases (apenas 2 por rotina de sincronização, e esse HibernateUtil mudará um pouco tbm):
public class HibernateUtil {
private static final HashMap<String, SessionFactory> sessionFactory = new HashMap<String, SessionFactory>();
private static ServiceRegistry serviceRegistry;
static {
try {
HibernateUtil.configureSessionFactory();
} catch (Throwable ex) {
// Log the exception.
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}
private static void configureSessionFactory() throws HibernateException {
Configuration configurationMatriz = new Configuration(),
configurationFilial = new Configuration();
configurationMatriz.configure("/hibernate.cfg.xml");
configurationFilial.configure("/hibernate.cfg_1.xml");
serviceRegistry = new ServiceRegistryBuilder().applySettings(configurationMatriz.getProperties()).buildServiceRegistry();
sessionFactory.put("matriz", configurationMatriz.buildSessionFactory(serviceRegistry));
serviceRegistry = new ServiceRegistryBuilder().applySettings(configurationFilial.getProperties()).buildServiceRegistry();
sessionFactory.put("filial", configurationFilial.buildSessionFactory(serviceRegistry));
}
public static SessionFactory getSessionFactory(String db) {
return sessionFactory.get(db);
}
}
Mas a questão é a seguinte… Estou com dúvidas em como seria a melhor forma de fazer a sincronização de dados (cadastros, registros de venda, etc…) utilizando o Hibernate?