Eu tenho a seguinte service que varre um ArrayList e valida vários dados e vai setando eles na entidade Contracts, o problema esta na hora de salvar, meu arrayList tem 4 contratos mas na hora de salvar apenas o ultimo é inserir no banco de dados, não dá erro os outros contratos apenas não são adicionados
@Transactional
public void processar(List<Contratos> list) {
ValidaDados v = new ValidaDados();
Contracts contrato = new Contracts();
for (Contratos c1 : list) {
Long idStatus = v.validaStatus(c1.getStatus());
Long idVinculo = v.validaVinculo(c1.getVinculo());
Long idEscolaridade = v.validaEscolaridade(c1.getEscolaridade());
Long idModalidade = v.validaModalidade(c1.getModalidade());
Long idInstituicao = v.validaInstituicao(c1.getInstituicao());
Long idCargo = v.validaCargo(c1.getCargo());
Long idAtuacao = v.validaAtuacao(c1.getAtuacao());
String sexo = v.validaSexo(c1.getSexo());
Status status = statusRepository.getById(idStatus);
Vinculo vinculo = vinculoRepository.getById(idVinculo);
Escolaridade escolaridade = escolaridadeRepository.getById(idEscolaridade);
Modalidade modalidade = modalidadeRepository.getById(idModalidade);
Instituicao instituicao = instituicaoRepository.getById(idInstituicao);
Cargo cargo = cargoRepository.getById(idCargo);
Atuacao atuacao = atuacaoRepository.getById(idAtuacao);
contrato.setNome(c1.getNome().toUpperCase());
contrato.setDataInicio(c1.getDataInicio());
contrato.setDataFim(c1.getDataFim());
contrato.setContratoFaixaSalarial(c1.getContratoFaixaSalarial());
contrato.setCpf(c1.getCpf());
contrato.setFormacao(c1.getFormacao());
contrato.setSexo(sexo);
contrato.setStatus(status);
contrato.setVinculo(vinculo);
contrato.setEscolaridade(escolaridade);
contrato.setModalidade(modalidade);
contrato.setInstituicao(instituicao);
contrato.setCargo(cargo);
contrato.setAtuacao(atuacao);
contractsRepository.save(contrato);
}
}
Pela saída do servidor da pra ver que apenas um insert foi feito e um update(porque???)
A saída no servidor está assim:
Hibernate:
insert
into
tbl_contrato
(ativo, atuacao_id, cargo_id, contrato_faixa_salarial, cpf, data_criacao, data_fim, data_inicio, data_ultima_alteracao, escolaridade_id, formacao_descricao, instituicao_id, modalidade_id, nome_contrato, sexo, status_id, vinculo_id)
values
(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
Hibernate:
update
tbl_contrato
set
ativo=?,
atuacao_id=?,
cargo_id=?,
contrato_faixa_salarial=?,
cpf=?,
data_criacao=?,
data_fim=?,
data_inicio=?,
data_ultima_alteracao=?,
escolaridade_id=?,
formacao_descricao=?,
instituicao_id=?,
modalidade_id=?,
nome_contrato=?,
sexo=?,
status_id=?,
vinculo_id=?
where
contrato_id=?
2021-12-10 10:49:53.065 INFO 2396 --- [ Thread-271] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default'
2021-12-10 10:49:53.065 INFO 2396 --- [ Thread-271] com.zaxxer.hikari.HikariDataSource : HikariPool-68 - Shutdown initiated...
2021-12-10 10:49:53.067 INFO 2396 --- [ Thread-271] com.zaxxer.hikari.HikariDataSource : HikariPool-68 - Shutdown completed.
Já conferi os dados no arraylist e todos estão completos, nenhum dado está faltando