в котором я пробегаюсь по массиву имейлов, по каждому имейлу отправляю запрос в базу и получаю данные для постраничного вывода.
                  
                  
                  
                  
                  
                  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 метод возвращающий строку же неполучится вызвать
Обсуждают сегодня