2014-03-26 1 views
1

Предположим, у меня есть простая процедура MS SQL Server, которая принимает 2 ИНТ аргументы и возвращает суммуВыполнение хранимой процедуры и получить одного из параметров в Hibernate

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

Могу ли я назвать эту процедуру из спящего режима (версия 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 Error: 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>();