Sql server 2008 如何获得JPA中存储过程的结果集?

Sql server 2008 如何获得JPA中存储过程的结果集?,sql-server-2008,stored-procedures,jpa-2.0,Sql Server 2008,Stored Procedures,Jpa 2.0,我有SQLServer2008和一个JPA(EclipseLink)应用程序。我需要能够从存储过程中读取行。存储过程执行一些更新/etc,但最后返回一个 从@result\u表中选择* 现在,当我使用以下方法在JPA中访问它时: String sql = "exec up_GetUpdatedRows ?, ?, ?"; entityManager = Factories.getEntityManager(); Query query = entityManager.createNativeQ

我有SQLServer2008和一个JPA(EclipseLink)应用程序。我需要能够从存储过程中读取行。存储过程执行一些更新/etc,但最后返回一个

从@result\u表中选择*

现在,当我使用以下方法在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();
这适用于其他本机SQL

有什么想法吗


谢谢

经过反复尝试,我终于找到了这个答案。我是从另一个问题中发现的


问题在于没有使用
上设置NOCOUNT。这非常令人困惑,因为错误表明没有结果集。然而,似乎有很多。这似乎与JPA无关。这似乎与底层JDBC驱动程序更相关。另一个检查一下。此人报告的问题与您相同。也许这些答案也适用于你。
Internal Exception: com.microsoft.sqlserver.jdbc.SQLServerException: The statement did not return a result set.