2014-03-26 143 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>();