在Hibernate中执行存储过程并获取单输出参数

时间:2014-03-26 06:42:10

标签: java sql-server hibernate stored-procedures jpa-2.0

假设我有一个简单的MS SQL Server过程,它接受2个int参数并返回总和

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

我可以从Hibernate(版本4.3.1)调用此过程吗?

到目前为止,我使用session.createSQLQuery("exec add_them :param1, :param2")方法稍后设置params并使用query.list()执行..

但是这不起作用,因为程序不会返回一个集合,而是一个单独的值。

那么,我可以调用这个程序吗?

2 个答案:

答案 0 :(得分:0)

尝试

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

答案 1 :(得分:0)

或者你可以试试这个:

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