Как динамически построить условие booleanbuilder со многими операционными системами - PullRequest
0 голосов
/ 07 февраля 2019

Мне нужно построить условие BooleanBuilder со многими операциями OR.

У меня есть метод с двумя входными параметрами:

User findUser(String inputname, List<String> inputcities);

И там у меня есть код:

BooleanBuilder builder = new BooleanBuilder();
builder.and(user.name(inputname));

Как мне динамически построить его для многих городов, как ИЛИ?Чтобы проверить, если пользователь из одного из этих городов, указанных в массиве?Таким образом, массив может содержать 5, 10 городов.Как я могу сделать это без харкодинга?

1 Ответ

0 голосов
/ 07 февраля 2019

Предполагая, что у сущности пользователя есть внешний ключ, ссылающийся на сущность Сити, я предлагаю вам использовать sql-запрос, подобный следующему:

select  u.*
  from  User u
  where u.NAME = :inputname
    and u.CITY_ID in :inputcities

Самый простой способ реализовать его - использовать JPA-репозиторий Spring Data.,Если вы сделаете это, вам не понадобится BooleanBuilder или другой пользовательский материал.

Если что-то все еще неясно, не стесняйтесь спрашивать.

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