Tenho 2 bancos de dados em maquinas diferentes e faço a atualização do banco A para o B.
então abro os dois bancos e faço os if da vida campo por campo…
Exemplo
If (tabelaa.campoA.equal(tabelaB.campoA)
If (tabelaa.campoB.equal(tabelaB.campoB)
If (tabelaa.campoC.equal(tabelaB.campoC)
Só que o banco está crescendo e está ficando lento essa comparação.
Como tirar essa gambiarra? E fazer do modo correto?
Lembrando que TEM QUE SER PELO JAVA. Não posso usar replicação do Postgres…
Se você está atualizando registros só precisa saber o ID, não?
for(/*registros de B*/){
A a = getA(b.id);
if(a != null){
/* update B com dados de A. Pode usar um BeanUtils da vida pra copiar os atributos, criar um Copy Constructor
ou usar outra estratégia pra não precisar copiar na mão */
}
}
Seria bom também você explicar porque não pode fazer isso pelo banco, já que seria infinitamente mais rápido.
Coloca registros campos com a ultima data de modificicacao… assim inicialmente voce só precisa verificar esse campo… se as datas forem diferentes… vc compara o resto
Creio que seja mais rápido simplesmente atualizar todos os campos do que fazer verificação de datas e ifs da vida. Não vai ser um grande trabalho pro banco de dados atualizar 5 campos ao invés de 1, já que vai tudo no mesmo update e é pro mesmo registro.
Creio que seja mais rápido simplesmente atualizar todos os campos do que fazer verificação de datas e ifs da vida. Não vai ser um grande trabalho pro banco de dados atualizar 5 campos ao invés de 1, já que vai tudo no mesmo update e é pro mesmo registro.[/quote]