Как получить набор результатов хранимой процедуры в JPA? - PullRequest
2 голосов
/ 08 июня 2011

У меня есть SQL Server 2008 и приложение JPA (EclipseLink). Мне нужно иметь возможность читать строки из хранимой процедуры. Хранимая процедура выполняет некоторое обновление / etc, но в конце возвращает

select * from @result_table

Теперь, когда я обращаюсь к нему в JPA, используя:

String sql = "exec up_GetUpdatedRows ?, ?, ?";
entityManager = Factories.getEntityManager();

Query query = entityManager.createNativeQuery(sql);
query.setParameter(1, myKey).setParameter(2, workDate).setParameter(3, createdBy);

List<Object[]> obj = query.getResultList();

Я получаю следующую ошибку :

Internal Exception: com.microsoft.sqlserver.jdbc.SQLServerException: The statement did not return a result set.

Это работает для других нативных SQL.

Есть идеи?

Спасибо

1 Ответ

4 голосов
/ 18 июня 2011

После долгих проб и ошибок я наконец нашел этот ответ. Я нашел это из другого вопроса здесь .

Проблема была в том, что не использовали SET NOCOUNT ON. Это очень сбивало с толку, так как в ошибке говорилось, что наборов результатов нет. И все же их оказалось много.

...