2012-04-30 76 views
0

我有一個映射存儲過程空指針4

<sql-query name="sproc" callable="true" > 
    <return alias="suppliers" class="model.Supplier"> 
     <return-property name="name" column="CoName" /> 
    </return> 
    { call sproc(:p1,:p2,:p3} 
</sql-query> 

當作爲命名查詢執行和存儲過程返回結果的話,query.list()將返回預期的結果,但是當存儲過程返回沒有結果當Hibernate嘗試初始化實體返回時,我得到一個NPE。

我可以抓到n並返回一個空列表,但這並不好,還有什麼我可以做的嗎?

回答

1

根據此hibernate docs mssql存儲過程必須返回結果集。在第16.2.2.1節中進一步說明你可以使用session.connection()。但我認爲這不會有太大用處。因此處理空指針似乎是一個好方法。

編輯:

如果您正在使用session.connection(),你也可以返回@@ROWCOUNT如果輸出的是,在過程中被用來獲取行的數量變化的唯一的事情。 0表示沒有返回