EntityManager.createQuery с некоторыми условиями - PullRequest
0 голосов
/ 02 марта 2020

У меня следующий запрос:

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.

...