Как обработать «ВСЕ», используя SQL-запрос внутри SPRING REST API? - PullRequest
0 голосов
/ 18 мая 2019

Я создаю REST API для работы с приложением Android.Android-приложение имеет выпадающие списки (спиннеры) и датчики, позволяющие выбирать параметры.Запрос обрабатывается и изменяется на запросы SQL (Oracle 11g) с помощью аннотации @Query (...).

Проблема начинается, когда я хочу изменить параметр «ВСЕ» (выбрать все параметры).

REST API - это JAVA Spring Boot и Hibernate.Android-приложение отправляет запрос с параметрами и ответом является простой JSON.Если пользователь выбирает значение параметра «ALL», равное 999999 (оно может быть изменено при необходимости).

Так это выглядит так: myurl / getinfo / 2/4/999999/56

Я пробовал многоВарианты:? 1 для отправки всех условий, используется% в качестве значения параметра, записанные методы для построения собственного запроса в виде строки и отправки с использованием PreparedStatement.Ничего не работаетВсегда ошибки.

Может ли кто-нибудь просветить меня, как это обычно должно выглядеть?Как обработать отправку «ALL» в качестве параметра и как обработать ее с помощью Java Spring REST?

Заранее спасибо: -)

Ответы [ 2 ]

0 голосов
/ 18 мая 2019

Criteria API - хороший вариант для решения этой проблемы (создайте запрос без определенных столбцов, если вы не хотите его фильтровать - это должно быть обработано в вашем Java-коде).

Но если вы хотите остаться с @Query, вы можете делегировать вычисления этого условия в базу данных, создав запрос, подобный следующему:

where (999999 = ?1 or field1 = ?1) and (999999 = ?2 or field2 = ?2)

Это приведет к тому, что поле field1 =: param1 будет вычисляться, только если: param1 не равно 999999.

0 голосов
/ 18 мая 2019

Может быть, Criteria Api лучше для этого - вы получите программный способ управления ограничениями (где пункт в sql). посмотрите на турориал: https://www.tutorialspoint.com/hibernate/hibernate_criteria_queries.htm

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