Вызов хранимой процедуры при помощи hibernate

237
06 октября 2021, 07:00

В базе данных есть хранимая процедура

CREATE DEFINER=root@localhost PROCEDURE totabank() select sum(summ) from summ_wallets

которая возвращает таблицей одну запись с суммой чисел. При помощи простой jdbc я могу сделать

ResultSet rs = statement.executeQuery("call totalbank()");

и потом условно пробежаться по нему циклом и достать int-овое значение как rs.getInt(1); Подскажите, как это можно было бы сделать при помощи Hibernate? Сёрфил интернет, рабочего примера так и не нашёл. Получалось как-то достать объект, кажется Query, но при вызове у него метода toString() он выдавал дефолтную toString()-строку объекта, а мне бы хотелось достать значение числом или строкой.

Answer 1
// ранее получаем сессию хибернейта из фабрики сессий
org.hibernate.procedure.ProcedureCall call =
                    session.createStoredProcedureCall("totalbank");
            org.hibernate.procedure.ProcedureOutputs callOutputs = call.getOutputs();
            org.hibernate.result.Output output;
            while ((output = callOutputs.getCurrent()) != null) { // проверяем наличие выходных значений
                if (output.isResultSet()) { // если выходное значение результат запроса (некоторые процедуры могут возвращать количество обработанных строк, тогда вернет false)
                    List<Integer> result =
                            ((org.hibernate.result.ResultSetOutput) output)
                                    .getResultList();
                    // обработать результат
                }
                if (!callOutputs.goToNext()) // некоторые процедуры могут возвращать несколько последовательных результатов
                    break;
            }
READ ALSO
Spring. Как связать две таблицы по ID

Spring. Как связать две таблицы по ID

Пытался связать поле одной таблицы с id другойПока не до конца понимаю как это вообще сделать

181
Загрузка проекта на хостинг

Загрузка проекта на хостинг

Я учусь, сделал небольшой проектИспользовал: IntelliJ IDEA 2019 Ultimate, java, jdbc, mysql, сервлеты

298
Как скрыть параметры окна?

Как скрыть параметры окна?

Нужно скрыть параметры окна (кнопки ЗАКРЫТЬ/СВЕРНУТЬ/РАЗВЕРНУТЬ) (JavaFX)

135