GOW

GOW

domingo, 18 de janeiro de 2026

COMPARE LISTS IN JAVA

 

1️⃣ Criar sets de idSubitem

Set<Long> idsBanco = listaManutencaoItem.stream()

        .map(ItemSubitemVO::getIdSubitem)

        .collect(Collectors.toSet());


Set<Long> idsRequest = retornoManutencaoRequestVO.getManutencaoRetornoItensVO()

        .stream()

        .map(ManutencaoRetornoItemVO::getIdSubitem)

        .collect(Collectors.toSet());


➕ Novos registros (inserir)


List<ManutencaoRetornoItemVO> novos = retornoManutencaoRequestVO.getManutencaoRetornoItensVO()
        .stream()
        .filter(vo -> !idsBanco.contains(vo.getIdSubitem()))
        .collect(Collectors.toList());


➖ Removidos (excluir do banco)

List<ItemSubitemVO> removidos = listaManutencaoItem.stream()
        .filter(vo -> !idsRequest.contains(vo.getIdSubitem()))
        .collect(Collectors.toList());


🔄 Persistindo

for (ManutencaoRetornoItemVO vo : novos) {
    manutencaoRetornoItemRepository.save(
        ManutencaoRetornoItem.builder()
            .manutencaoRetornoItemPK(new ManutencaoRetornoItemPK(idManutencao, vo.getIdSubitem()))
            .numeroNotaFiscal(vo.getNumeroNotaFiscal())
            .valorNotaFiscal(vo.getValorNotaFiscal())
            .build()
    );
}


Remover

for (ItemSubitemVO vo : removidos) {
    manutencaoRetornoItemRepository.deleteByManutencaoIdAndSubitemId(idManutencao, vo.getIdSubitem());
}

Nenhum comentário:

Postar um comentário