Могу ли я вернуть пользовательский объект из запроса UPDATE вместо целого числа? - PullRequest
0 голосов
/ 18 апреля 2019

При выполнении запроса UPDATE он всегда возвращает INT количество затронутых строк.Может быть, есть какой-нибудь способ вернуть, например, список всех объектов, которые были обновлены или обновлены первыми?

У меня есть @Entity SecurityPolicy и я хочу вернуть этот объект после обновления.Итак, вот мой код:

@Modifying
@Query(value = "UPDATE security_policy s set max_fail_sign_in =:maxFailSignIn," +
        " min_password_length =:minPasswordLength," +
        " capital_in_password =:capitalInPassword," +
        " digit_in_password =:digitInPassword," +
        nativeQuery = true)
SecurityPolicy updateSecurityPolicy(@Param("maxFailSignIn") Integer maxFailSignIn,
                                          @Param("minPasswordLength") Integer minPasswordLength,
                                          @Param("capitalInPassword") Boolean capitalInPassword,
                                          @Param("digitInPassword") Boolean digitInPassword);

При использовании @Modifying он говорит мне, что результатом должен быть Int, а без него - не удалось извлечь ResultSet.Я знаю, что с весенними данными вы можете легко сохранить или обновить какую-то сущность и получить ее в результате, поэтому я хочу добиться чего-то похожего.

1 Ответ

0 голосов
/ 18 апреля 2019

Нет, вы не можете, поскольку целочисленный ответ не генерируется платформой, а самой СУБД (спецификация SQL).Это целое число говорит о том, сколько строк было изменено запросом.

Поскольку вы не хотите использовать JPA для этого, вам придется SELECT эту строку после обновления, как вы это делаете с простым SQL.

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