Невозможно получить возвращенное значение при вызове хранимой процедуры из JPA - PullRequest
0 голосов
/ 23 ноября 2018

SP выглядит так: -

CREATE PROCEDURE <spnamegoeshere>
AS
BEGIN
/*  Some code goes here */
return 102323   /*Need to get this value*/
END
GO

Мы выполняем хранимую процедуру (размещенную в SQL SERVER) через JPA, используя

createStoredProcedureQuery("spnamegoeshere");

Мне нужно получить это возвращаемое значение" 102323 ".К сожалению, используя приведенную выше команду, не удалось получить.

После небольшого поиска получил эту ссылку.

https://docs.microsoft.com/en-us/sql/connect/jdbc/using-a-stored-procedure-with-a-return-status?view=sql-server-2017

Согласно приведенному выше документу, я могуесли я использую значение.

1 Ответ

0 голосов
/ 23 ноября 2018

Это работает для меня:

  @Test
  public void testProc() {
    SimpleJdbcCall call = new SimpleJdbcCall(jdbcTemplate);
    Map<String, Object> map = call.withProcedureName("retValTestProc").withReturnValue().execute();
    Assert.assertNotNull("Expected not null result but it is", Objects.nonNull(map));
    Assert.assertTrue("Expected size = 1, actual=" + map.size(), map.size() == 1);
    Assert.assertTrue("Expected value=102323, actual=" + map.get("RETURN_VALUE"),
                      Objects.equals(102323, map.get("RETURN_VALUE")));
  }

Где retValTestProc = <spnamegoeshere>

Также вы можете создать SimpleJdbcCall с DataSource конструктором

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...