2014-03-26 141 views
1

假設我有一個需要2個INT參數並返回總和執行存儲過程,並在Hibernate中

CREATE PROC add_them 
    @param1 int, 
    @param2 int, 
    @result int OUTPUT 
AS 
BEGIN 
    SET @result = @param1 + @param2; 
END 

我可以打電話從休眠此過程簡單MS SQL服務器程序(4.3版獲得單一輸出參數0.1)?

到目前爲止,我使用了session.createSQLQuery("exec add_them :param1, :param2")方法以後設置PARAMS與query.list()執行它..

但是,這並不工作,因爲該過程不返回一組,但單一的超時值。

那麼,我可以調用這個程序嗎?

回答

0

嘗試用

Query addItemQuery=session.createSQLQuery("exec add_them :param1, :param2"); 
addItemQuery.setInteger("param1", 1); 
addItemQuery.setInteger("param2", 2); 
objArrList=addItemQuery.list(); 
+0

這基本上是我所描述的什麼已經嘗試過。我得到一個'SQL錯誤:0,SQLSTATE:24000 executeQuery方法必須返回結果集。 org.hibernate.exception.GenericJDBCException:無法提取ResultSet'錯誤 –

0

或者你可以試試這個:

Query addItemQuery=session.createSQLQuery("exec add_them :param1, :param2"); 
.SetParameter("param1", param1) 
.SetParameter("param2", 2); 
.list<int>();