Поиск по параметру в базе данных с использованием пружины - PullRequest
2 голосов
/ 28 мая 2019

У меня есть эти два идентификатора, ID_A и ID_B.

Что я хочу сделать, это сделать поиск на основе этих двух идентификаторов, но пользователю не нужны два ввода двух из них.

Например, у меня есть два поля ввода для ввода пользователем ID_A и ID_B.

При поиске объекта с помощью ID_A я хочу, чтобы мой запрос игнорировал мой ID_B (сделайте его по умолчанию - NOT NULL).В базе данных это можно сделать с помощью подстановочного знака «%», но я не знаю, как это сделать весной.Оба идентификатора являются BigDecimals.

Я пытался сделать

if(ID_A==null)
substituteParmeter(ID_A)

Метод замещающего параметра изменяет текущее значение определенного параметра на подстановочный знак «%». Однако при выполнении этого запроса:

Select t from Table t where t.ID_A like :id_a and t.ID_B like :id_b

Если для id_a или id_b задано значение «%», программа обнаружила ошибку, в результате которой было обнаружено «%» и предполагается, что оно имеет значение bigDecimal.

Как мне обойтиошибка?

Спасибо.

1 Ответ

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

Вы можете использовать запрос как:

Select t from Table t where :id_a  is null or t.ID_A  like :id_a and  :id_b is null or t.ID_B like :id_b  

Надеюсь, это полезно для вас.

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