Критерии поиска с нулевым выражением - PullRequest
0 голосов
/ 21 апреля 2020

Я пытаюсь использовать интерфейс спецификации. Пока все хорошо, но теперь я хотел бы использовать дополнительные критерии поиска. В приведенном ниже коде, если customerId (Long) равен нулю, я хотел бы получить всех клиентов из db, а не только клиента с указанным c Id. Сейчас работает только вторая часть. Можно ли получить всех клиентов, если данный идентификатор равен нулю? Заранее спасибо!

Specification<Order> customer = (root, query, cb) -> {return cb.equal(root.get("customerId"), customerId);
        };

1 Ответ

0 голосов
/ 21 апреля 2020

Таким образом, вам нужно создать условие для возврата пустого (по умолчанию) CriteriaBuilder на ноль customerId:

 Specification<Order> customer = (root, query, cb) -> {
     if(customerId == null){
       return cb; // return empty CriteriaBuilder
     }
     return cb.equal(root.get("customerId"), customerId);
 };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...