Pessoal,
Sou iniciante em Java e to precisando mt da ajuda de vcs. Preciso saber como comparar dados de um form (que vem como String) com os dados de uma tabela Funcionario (atributos do tipo String, Long e Date), antes de gravar numa tabela de historico, caso haja alguma alteração nos novos dados do formulario (como se fosse tabela de log p/ registrar todas as alterações).
Todos os id dos objetos são do tipo Long, todas as datas são do tipo Date e o resto é do tipo String
O trecho do meu codigo é esse:
Funcionario f = (Funcionario) listaFuncionario.get(0);
if (f.getMatricula().charAt(2) == ‘2’){
String idTarTransp = (String) PropertyUtils.getSimpleProperty(form, “idTarTransp”);
String isAlimentacao = (String) PropertyUtils.getSimpleProperty(form,“isAlimentacao”);
String isTransporte = (String) PropertyUtils.getSimpleProperty(form,“isTransporte”);
String obs = (String) PropertyUtils.getSimpleProperty(form, “obs”);
Date dataAdmissao = FormUtils.stringToDate(String) PropertyUtils.getSimpleProperty(form, “dataAdmissao”);
if(!idTarTransp.equals(f.getIdTarTransp()) || (!dataAdmissao.equals(f.getDataAdmissao()) ||
(!obs.equals(f.getObs()) || (!isTransporte.equals(f.getIsTransporte())||
(!isAlimentacao.equals(f.getIsAlimentacao()))))){
//GRAVRAR NA TABELA DE HISTORICO SOMENTE OS DADOS ALTERADOS
HistFuncionario hf = new HistFuncionario();
hf.setIdFuncionario(f.getId());
hf.setDataAdmissao(f.getDataAdmissao());
hf.setIdTarTransp(f.getIdTarTransp());
hf.setIsAlimentacao(f.getIsAlimentacao());
hf.setIsTransporte(f.getIsTransporte());
hf.setObs(f.getObs());
synchronized (gerPersist) {
gerPersist.saveOrUpdate(c);
gerPersist.commit();
gerPersist.save(hf);
}
}
