Я имею в виду Using dynamic query in Liferay и используя MySQL 5.5, но вместо пользовательских запросов, связанных с несколькими сущностями, нам нужно вызвать хранимую процедуру. Мы создали процедуруКак вызвать хранимую процедуру в liferay?
образцаdelimiter //
Create Procedure proc_check (OUT count INT)
begin
select count(*) into count from lg_office ;
end//
В DEFAULT.XML, содержащий пользовательские запросы, мы использовали
<sql id="de.uhh.l2g.plugins.service.persistence.ProducerFinder.findOfficeCount">
<![CDATA[
Call proc_check(@output)
]]>
</sql>
В соответствующем методе Finder, мы использовали ниже фрагмент коду для вызова хранимой процедуры, передавая -1 для начала и конца.
String sql = CustomSQLUtil.get(FIND_OFFICE_COUNT);
SQLQuery q = session.createSQLQuery(sql);
QueryPos qPos = QueryPos.getInstance(q);
//qPos.add(lectureseriesId);
List <Integer> sl = (List<Integer>) QueryUtil.list(q, getDialect(), begin, end);
return sl;
В QueryUtil мы не смогли найти другие применимые методы для выполнения вызова. сообщение это мы получаем ошибку ниже
ERROR [RuntimePageImpl-5][JDBCExceptionReporter:82] ResultSet is from UPDATE. No Data.
Является ли это правильный подход с чем-то отсутствует или если нет, пожалуйста, предложить подход для достижения того же.
Странно слышать, что вам нужна хранимая процедура каллы, чтобы выполнить операцию подсчета. Вы уверены, что это правильный путь? –
@ DanieleBaggio Это только для целей тестирования, поскольку фактический не работал! –