保存后关闭语句

时间:2018-07-05 12:20:30

标签: spring-boot spring-data-jpa

我正在将Spring Boot与Jpa Repository结合使用。我将一些记录循环保存,保存完所有记录后,将打印以下异常。

java.sql.SQLRecoverableException:InstruçãoFechada     在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)处[h​​ibernate-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);
        }
    }

}

1 个答案:

答案 0 :(得分:0)

已解决。

我将ojdbc6的oracle驱动程序版本更改为ojdbc7