в котором я пробегаюсь по массиву имейлов, по каждому имейлу отправляю запрос в базу и получаю данные для постраничного вывода.
Page <Candidate> page = null;
PageRequest pageRequest = PageRequest.of(reportPagination.getPageNumber(), reportPagination.getPageSize(), Sort.Direction.DESC, "id");
for (String email : emails) {
page = candidateRepository.allPage(email, reportPagination.getName(), pageRequest);
}
Конечно же при каждой итерации page перезаписывается.
Как сделать что бы он формировался по совокупности результатов всех запросов а не перезаписывался?
Или как альтернатива, есть ли возможность сделать один динамический запрос к базе по неизвестному количеству имейлов?
Что то типа:
@Query("select c from Candidate c where " +
"( lower(c.hrEmail) like lower(:email)) or " +
"( lower(c.hrEmail) like lower(:email1)) or " +
"( lower(c.hrEmail) like lower(:email2)) or " +
"( lower(c.hrEmail) like lower(:email3))" +
"c.testedCandidates.size > 0 and " +
" (:name = '' or :name is null or lower(c.surname) like lower(concat('%', :name,'%')) or lower(c.name) like lower(concat('%', :name,'%'))) "
)
Page<Candidate> allPage(String email, String email1, String email2, String email3, String name, Pageable pageable);
Проблема в том, что не известно к-во имейлов в массиве. Можно ли такой запрос сделать с динамически подставляемым к-вом имейлов?
попробуй в стрингбилдере аппендить нужные строки для запроса или попробуй через спеки
Я не понял, что именно нужно сделать в итоге?
Запросы какого рода? Их результат одного типа?
запрос, тот что я указал в вопросе. Возвращает Page<Candidate>
Ну, раз указал, а я не понял, то я не смогу помочь.
не очень понял как применить к @Query там нужно параметры передать динамически, не знаю как и в принципе можно ли
чет хз даже. Внутри @Query метод возвращающий строку же неполучится вызвать
Обсуждают сегодня