У меня следующий запрос:
List<User> users = em.createQuery("SELECT u FROM User u WHERE (:emailValue is null OR u.email=:emailValue) " +
"AND (:phoneValue is null OR u.phone=:phoneValue)", User.class).
setParameter("emailValue", email).
setParameter("phoneValue", phone).
getResultList();
Примените его для этих данных:
- User1. Электронная почта: alex@gmail.com. Телефон = 1 111 1111;
- Пользователь2. Email: alex@gmail.com. Phone = 2 222 2222;
И используйте этот запрос:
customers?email=alex@gmail.com&phone=22222222
Я исключен, я получу User2, поскольку он соответствует 2 условиям: электронная почта и телефон.
Но на самом деле я получил Use1, User2.