Как найти все по значениям строки мультиплея? - PullRequest
1 голос
/ 05 ноября 2019

У меня есть сотрудник, который имеет поле status как @Enumerated, которое сохраняется как строка в PostgreSQL. Статус

.

может содержать 3 значения: ACTIVE, INACTIVE, TRIAL.

Мне нужен метод JPA без именованного запроса, или @Query Аннотация, которая доставит меня всем сотрудникам where status = 'ACTIVE' or 'TRIAL'..

`findAllByStatusIn (List statusList) 'присваивает только последний добавленный статуссписок.

т.е. если я добавлю

statusList.add(Status.ACTIVE)
statusList.add(Status.TRIAL)

. тогда я получаю только TRIAL сотрудников. Но если я добавлю

statusList.add(Status.TRIAL);
statusList.add(Status.ACTIVE);

Как получить значения с обоими состояниями, используя метод JPA?

Любая помощь приветствуется.

Новое в данных JPA и Spring.

Пожалуйста, укажите мне правильный ответ, если этот вопрос является возможной копией.

Заранее спасибо.

1 Ответ

1 голос
/ 08 ноября 2019

Попробовав несколько версий из вышеупомянутых ценных комментариев, я нашел правильный способ извлечения, основанный на списке статусов.

Page<Employee> findAllByStatusIn(List<Status> statusList, Pageable pageable);

работает как положено. Дает также информацию, доступную для просмотра. Я также попытался удалить ключевое слово All из метода.

Это тоже работает одинаково:

Page<Employee> findByStatusIn(List<Status> statusList, Pageable pageable);

Поскольку это несколько записей, выбранных одновременно, я сохранил ключевое слово All для лучшего понимания.

Но я считаю, что в этом нет необходимости.

...