Как получить несколько списков результатов из процедуры магазина в сторону начальной загрузки - PullRequest
0 голосов
/ 14 сентября 2018

Я пытаюсь получить несколько результатов из процедуры магазина в сторону Spring, но каким-то образом я получаю эту ошибку:

org.hibernate.exception.SQLGrammarException: Error extracting results from CallableStatement
    at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:106)
    at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42)
    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:111)
    at org.hibernate.result.internal.OutputsImpl.convert(OutputsImpl.java:79)
    at org.hibernate.result.internal.OutputsImpl.extractResults(OutputsImpl.java:139)
    at org.hibernate.result.internal.OutputsImpl.extractCurrentResults(OutputsImpl.java:127)

Моя процедура магазина похожа, Пример:

DELIMITER ;;

CREATE PROCEDURE `USER_LIST`()
BEGIN

   SET @sqlSelect = 'SELECT * from profile WHERE is_email_verified = 0';

   PREPARE stmt FROM @sqlSelect;
   EXECUTE stmt;

   SET @sqlSelect = 'SELECT * from user WHERE is_phone_verified = 0';

   PREPARE stmt FROM @sqlSelect;
   EXECUTE stmt;


END;;
DELIMITER ;

Весной сторона:

StoredProcedureQuery storedProcedure = entityManager.createStoredProcedureQuery("USER_LIST");

        // Execute stored procedure
        storedProcedure.execute();

        List<Object[]> storedProcedureResults = storedProcedure.getResultList();

        if(storedProcedure.hasMoreResults())
        {
            System.out.println("Print");
        }

Я получаю эту ошибку в случае, если я пишу storedProcedure.hasMoreResults().

Есть ли какой-нибудь возможный способ получить оба списка результатов на стороне пружины?

Пожалуйста, помогите мне решить это. Заранее спасибо.

1 Ответ

0 голосов
/ 14 сентября 2018

Hibernate возвращает только первый набор результатов, возвращаемый вызовом процедуры. Это означает, что вы сможете получить только набор результатов таблицы профиля, если правильно сопоставите ее с соответствующим объектом на стороне Spring. Однако, если вам нужен результат обеих таблиц, объедините набор результатов обеих таблиц, используя объединение. И затем вам нужно сопоставить его с сущностью, которая должна иметь все столбцы обеих таблиц на стороне пружины.

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