Olá Devs,
Estou trabalhando com Spring-boot e descobri que existe uma anotação para uso de procedures no banco de dados, @Procedure
, que colocamos na Repository, segue o código:
@Procedure(procedureName = "sp_Inserir_PessoaLegado")
public Integer pessoaIncluirLegado(
@Param(value = "PesNome") String nome,
@Param(value = "PesCpf") String cpf,
@Param(value = "PesRg") String rg,
@Param(value = "PesRgOrgao") String rgOrgao,
@Param(value = "PesRgUf") String rgUF,
@Param(value = "PesRgDataEmissao") LocalDate rgDataEmissao,
// outros parâmetros
);
Mas o meu código lança a seguinte exceção quanto tento chamar essa procedure no banco de dados:
Caused by: org.hibernate.exception.GenericJDBCException: Error preparing registered callable parameter
at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:47) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:113) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
at org.hibernate.procedure.internal.ProcedureCallImpl$3.accept(ProcedureCallImpl.java:406) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
at org.hibernate.procedure.internal.ProcedureCallImpl$3.accept(ProcedureCallImpl.java:390) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
... 84 more
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: O índice 60 está fora do intervalo.
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:234) ~[mssql-jdbc-9.2.1.jre8.jar:?]
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.setterGetParam(SQLServerPreparedStatement.java:1115) ~[mssql-jdbc-9.2.1.jre8.jar:?]
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.setValue(SQLServerPreparedStatement.java:1129) ~[mssql-jdbc-9.2.1.jre8.jar:?]
...
Por experiência eu sei que o índice 60 pode ser algum parâmetro a mais com relação ao que existe na procedure, porém, já verifiquei isso e todos os parâmetros estão listados.
Então, gostaria da ajuda de vocês, principalmente de quem já utilizou esse recurso do Spring alguma vez.
Desde já agradeço.