Я пытаюсь вызвать процедуру оракула из репозитория в весеннем приложении.
процедура имеет два параметра: один входной параметр и один выходной параметр.
я получаю следующее исключение:
org.springframework.dao.InvalidDataAccessResourceUsageException: Error calling CallableStatement.getMoreResults; SQL [import_test]; nested exception is org.hibernate.exception.SQLGrammarException: Error calling CallableStatement.getMoreResults
в журнале я также прочитал:
PLS-00306: numero o tipi di argomenti errati nella chiamata di 'IMPORT_TEST'
здесь заголовок процедуры:
create or replace PROCEDURE IMPORT_TEST (step IN VARCHAR2, esito OUT VARCHAR2)
сущность:
@NamedStoredProcedureQueries({
@NamedStoredProcedureQuery(name = "import_test", procedureName = "import_test",
parameters = {@StoredProcedureParameter(mode = ParameterMode.IN, name = "step", type = String.class),
@StoredProcedureParameter(mode = ParameterMode.OUT, name = "esito", type = String.class) }) })
@Entity
public class StoredProcedureImportTest implements java.io.Serializable {
/** The Constant serialVersionUID. */
private static final long serialVersionUID = 2363789532097967637L;
/** The esito. */
private String esito;
/**
* Gets the esito.
*
* @return the esito
*/
@Id
public String getEsito() {
return this.esito;
}
/**
* Sets the esito.
*
* @param esito
* the new esito
*/
public void setEsito(String esito) {
this.esito = esito;
}
}
хранилище:
public interface StoredProcedureImportTestRepository extends BaseRepository<StoredProcedureTest, Long> {
/**
* Sp import class standart.
*
* @param step
* the step
* @return the string
*/
@Procedure(name = "import_test")
String importTest(@Param("step") String step);
}
Я вызываю процедуру внутри Сервиса:
String esito = storedProcedureImportTestRepository.importTest(step);
Кажется, проблема здесь в выходном параметре, все работает нормально, используя только входной параметр.
Итак, вопрос в том, как правильно управлять выходным параметром в Spring - jpa? (используя аннотации)
Где я не так делаю ??