Hibernate ProcedureCall.getOutputs () не возвращает имя столбца - PullRequest
0 голосов
/ 10 июля 2020

Я создал хранимую процедуру, sql в хранимой процедуре - это динамическая c кросс-таблица, поэтому имя столбца неизвестно до запуска хранимой процедуры, а теперь в спящем режиме я использую ProcedureCall.getOutputs (), и я проверяю возвращаемый ResultSetOutput и обнаруживаю, что имя столбца не возвращается, любой метод для извлечения имени столбца из результата хранимой процедуры?

боковой код java похож на следующий

ProcedureOutputs outputs = call.getOutputs();
                do {
                    Output output = outputs.getCurrent();
                    List<Object[]> results;
                    if (output!=null) {
                        if (output.isResultSet()) {
                             results = ( (ResultSetOutput) output ).getResultList();
                             for (Object[] row:results) {
                                 System.out.println("Arrays.toString(row)="+Arrays.toString(row));
                             }
                        }else {
                            UpdateCountOutput updateCountOutput = (UpdateCountOutput)output;
                            System.out.println("update count = " +updateCountOutput.getUpdateCount());
                        }
                    }
                }while (outputs.goToNext());

, а вывод консоли выглядит следующим образом:

18: 22: 28,425 ИНФОРМАЦИЯ [stdout] (задача по умолчанию-3) Arrays.toString (row) = [1, ОБЯЗАТЕЛЬНОЕ ОТСТУПЛЕНИЕ, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1]

18: 22: 41,712 ИНФОРМАЦИЯ [stdout] (задача по умолчанию-3) Arrays.toString (row) = [1 , Смерть, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1]

18: 22: 46,254 ИНФОРМАЦИЯ [stdout] (задача по умолчанию-3) Arrays.toString (строка) = [1, ОТКАЗ, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...