2011-06-08 123 views
2

我有SQL Server 2008和JPA(EclipseLink)應用程序。我需要能夠讀取存儲過程中的行。該存儲過程做了一些更新的/ etc但最後返回如何在JPA中獲取存儲過程的結果集?

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

這似乎與JPA無關。這似乎與底層JDBC驅動程序更相關。檢查這個[問題/答案](http://stackoverflow.com/questions/1826271/sqlserverexception-the-statement-did-not-return-a-result-set-when-executing-sql)。此人與您報告相同的問題。也許答案也適用於你。 – 2011-06-08 19:49:58

回答

4

經過大量的試驗和錯誤,我終於找到了答案。我從另一個問題here發現它。

問題在於未使用SET NOCOUNT ON。由於錯誤表示沒有結果集,所以非常令人困惑。然而,似乎有很多。

相關問題