Использование переменной в Spring @Query

У меня возникла проблема с тем, чтобы моя переменная работала в моем @Query. Ниже приведен код

@Query("SELECT new User(userId, userEmail, userForename, userSurname, userMiddleName) "
        + "FROM User "
        + "ORDER BY :orderBy DESC")
public List<User> findAllBy(@Param("orderBy") String orderBy);

Я знаю, что переменная, которую я хочу, передается правильно. На данный момент это просто возвращает все результаты, упорядоченные по userId. Если я жестко закодирую значение, которое передается в эту функцию, то оно правильно возвращает результаты, упорядоченные по userEmail (именно это и передается). Любые предложения были бы замечательными.

покажите, как вы называете это забавным, вот в чем проблема.

davidxxx 05.03.2019 20:04

Ваш способ сделать запрос опасным, когда запрос преобразуется, он должен выглядеть так ORDER BY 'some string' DESC вы заметили кавычки? это должно вызвать проблемы

YCF_L 05.03.2019 20:08
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
80
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

К сожалению, вы можете передавать параметры только в «условные» предложения (например, «где») из-за базовых ограничений JDBC.

Вместо этого рассмотрите возможность использования перегруженный метод PageRequest "of".

public static PageRequest of(int page,
                         int size,
                         Sort.Direction direction,
                         String... properties)

Ах, спасибо за информацию, PageRequest идеально подходит для того, что я хотел

user3193861 05.03.2019 20:42

Другие вопросы по теме