Как передать список строк в @Query в Spring Boot - PullRequest
1 голос
/ 13 апреля 2020

Я пытаюсь передать несколько слов для алгоритма поиска в аннотацию @Query Neo4j в Spring Boot. Вот что я пытаюсь:

@Query("WITH [{search}] AS sarray "
     + "MATCH (a:Node) "
     + "WHERE ALL(s IN sarray WHERE a.name=~('(?i).*'+s+'.*') " // <- This is known good regex
//The rest of the query which is known good

Этот запрос отлично работает в веб-интерфейсе Neo4j, например:

WITH ["some","search","terms"] AS sarray

Что я пробовал:

  • Передача в одной строке с запятыми между несколькими словами
  • Передача в переменную {search} ArrayList
  • Передача в переменную {search} массива
  • Снятие скобок в аннотации
  • Возможны и другие вещи, которые тоже не сработали

Ошибка, которую я получаю, говорит: «Неверное регулярное выражение: недопустимое повторение около индекса 5 (? I). {search}. ^ "

Это регулярное выражение работает до изменения запроса на включение нескольких слов.

1 Ответ

0 голосов
/ 04 мая 2020

Вы можете попробовать это:

@Query("MATCH (u:User) WHERE u.id in $ids RETURN u.id as id")
List<String> findByIdIn(@Param("ids") List<String> ids);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...