如何在JPA中获取存储过程的结果集?

时间:2011-06-08 14:17:38

标签: sql-server-2008 stored-procedures jpa-2.0

我有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 个答案:

答案 0 :(得分:4)

经过大量的反复试验,我终于找到了这个答案。我是从另一个问题here找到的。

问题在于没有使用SET NOCOUNT ON。由于错误说没有结果集,所以非常令人困惑。然而,似乎有很多。