Я использую Spring boot с Jpa Repository. Я сохраняю некоторые записи в цикле, и после того, как все записи были сохранены, печатается исключение ниже.
java.sql.SQLRecoverableException: Instrução Fechada
в oracle.jdbc.driver.OracleClosedStatement.getMaxRows (OracleClosedStatement.java:3578) ~ [ojdbc6-11.2.0.3.jar: 11.2.0.3.0]
в oracle.jdbc.driver.OracleStatementWrapper.getMaxRows (OracleStatementWrapper.java:150) ~ [ojdbc6-11.2.0.3.jar: 11.2.0.3.0]
в com.zaxxer.hikari.pool.HikariProxyPreparedStatement.getMaxRows (HikariProxyPreparedStatement.java) [HikariCP-2.7.8.jar: na]
в org.hibernate.resource.jdbc.internal.ResourceRegistryStandardImpl.close (ResourceRegistryStandardImpl.java:165) [hibernate-core-5.2.16.Final.jar: 5.2.16.Final]
в org.hibernate.resource.jdbc.internal.ResourceRegistryStandardImpl.releaseResources (ResourceRegistryStandardImpl.java:307) [hibernate-core-5.2.16.Final.jar: 5.2.16.Final]
вот мой код:
@Transactional
public void resgatarPremios(List<ResgatePremio> resgates) {
if(resgates != null && !resgates.isEmpty()) {
Vendedor vendedor = vendedorRepository.buscarRca(resgates.get(0).getCodigoVendedor());
for(ResgatePremio resgatePremio : resgates) {
Premio premio = premioRepository.findById(resgatePremio.getCodigoPremio()).get();
resgatePremio.setCodigoVendedor(vendedor.getCodigo());
resgatePremioRepository.save(resgatePremio);
MovimentacaoContaCorrentePontos movimentacaoContaCorrentePontos = new MovimentacaoContaCorrentePontos();
movimentacaoContaCorrentePontos.setCodigoContaCorrentePontos(1L);
movimentacaoContaCorrentePontos.setDataHoraMovimentacao(LocalDateTime.now());
movimentacaoContaCorrentePontos.setCodigoVendedor(vendedor.getCodigo());
movimentacaoContaCorrentePontos.setQuantidadePontosMovimentada(resgatePremio.getQuantidade() * premio.getQuantidadePontos() * -1);
movimentacaoContaCorrentePontosRepository.save(movimentacaoContaCorrentePontos);
}
}
}