Spring Jpa Query: передача нескольких параметров в предложение IN собственного запроса - PullRequest
0 голосов
/ 03 апреля 2020

Я пытаюсь передать несколько параметров в собственный запрос в Spring JpaRepository:

@Query(value="select pat.id from Pathology pat, PathologySymptom psym "
            + "Where pat.id=psym.patologyId and psym.name IN (:symptoms)",nativeQuery=true)
public List<Long> findIdsBySymptoms(@Param("symptoms") String symptoms);

и тестирование:

String symptoms = "vomit";
        try {

            ids = pathologyRepository.findIdsBySymptoms(symptoms);

            List<Pathology> paths = pathologyRepository.findAllById(ids);

            assertNotNull(paths);



        }catch(Exception ex) {
            ex.printStackTrace();
        }

Но когда я пытаюсь: String симптомов = "vomit ,тошнота"; Он не возвращает ничего, что я тоже пробовал: "рвота", "тошнота"; и «рвота», «тошнота»; с тем же результатом

Запрос:

select pat.name, pat.id 
from 
Pathology pat, 
PathologySymptom psym 
Where pat.id=psym.patologyId 
and psym.name IN ('vomit','nausea');

Возвращает:

  'stomach colic', '4'

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

select pat.name, pat.id 
from 
Pathology pat, 
PathologySymptom psym 
Where pat.id=psym.patologyId 
and psym.name IN (select replace('\'vomit\'#','#',''));

Запрос не завершается ошибкой, но ничего не возвращается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...