Stack Overflow em Português Asked on December 11, 2021
No meu fluxo é assim:
List
), dessa é iterada por um for
para receber os devidos tratamentos.webservice
recebendo um outro objeto. Faço uma comparação entre os objetos e caso haja diferença, o objeto que veio do banco precisa ser atualizado.Basicamente é isso, o problema ocorre é que eu atualizo meu objeto e mando atualizar no banco mas não atualiza. Alguém pode me dar um help ?
O método que busca no banco:
public void pesquisar() {
List<Objeto> objetos = new ArrayList<>();
objetos = service.findAll();
this.encomendas = new ArrayList<>();
if (CollectionUtils.isNotEmpty(objetos)) {
try {
for (Objeto objeto : objetos) {
houveAlteracao(objeto);
ajustarInformacoes(objeto);
}
ordenarLista();
horaAtualizacao = new Date();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Agora o método houveAlteracao()
:
private void houveAlteracao(Objeto objeto) {
try {
final Objeto obj = popularObjeto(objeto.getCodigo());
if (obj.getEventos().size() > objeto.getEventos().size()) {
objeto.setEventos(obj.getEventos());
service.update(objeto);
} else {
}
} catch (Exception e) {
e.printStackTrace();
}
}
Neste método se getEventos.size()
que pertence ao objeto pesquisado na webservice
for maior, o objeto do banco deve receber estes valores e depois atualizado, o problema é que o comando é aplicado mas não atualiza. E por último o comando de atualizar:
public void update(Objeto objeto) {
this.em.merge(objeto);
}
Alguém ajuda por favor ?
Obrigado a todos que tentaram ajudar, mas lendo este Artigo claro pra mim, então assim funcionou:
private void houveAlteracao(Long id) {
try {
Objeto objeto = service.find(id);
final Objeto obj = popularObjeto(objeto.getCodigo());
if (obj.getEventos().size() > objeto.getEventos().size()) {
Evento evento = obj.getEventos().get(0);
objeto.getEventos().add(evento);
evento.setHorario(JsfUtils.stringParaTimestamp(evento.getDataOcorrencia().concat(" ").concat(evento.getHoraOcorrencia())));
evento.setObjeto(objeto);
service.update(objeto);
pesquisar();
}
} catch (Exception e) {
e.printStackTrace();
}
}
Answered by Roknauta on December 11, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP