как передать параметр запроса отношения в весенних данных neo4j - PullRequest
0 голосов
/ 12 июня 2018

возвращает ошибку с аннотацией ниже.

@Query(value ="MATCH (n:Phone {phoneId:{0}})-[f:calling*0..{1}]-(m) OPTIONAL MATCH (m)-[r]-() return m,r")  
List<QueryPOJO> graph(String name,int level);

Описание: карты параметров не могут использоваться в шаблонах MATCH (вместо этого используйте буквенную карту, например. "{Id: {param} .id}") (строка 1, столбец 45 (смещение: 44))

нам нужен элегантный метод для решения этой проблемы вместо записи многих интерфейсов.

   @Query(value ="MATCH (n:Phone {phoneId:{0}})-[f:calling*0..2]-(m) 
   OPTIONAL MATCH (m)-[r]-() return m,r")  
   List<QueryPOJO> grapht_2(String name,int level);

   @Query(value ="MATCH (n:Phone {phoneId:{0}})-[f:calling*0..3]-(m) 
   OPTIONAL MATCH (m)-[r]-() return m,r")  
   List<QueryPOJO> grapht_3(String name,int level);

шифр не может решить проблему отношения уровня.

   MATCH (n:Person {name:'AAA'})-[f]-(m) where type(f)="Follow" OPTIONAL MATCH (m)-[r]-() return m,r

Ответы [ 2 ]

0 голосов
/ 03 сентября 2018

Cypher не поддерживает ограничения на отношения, как вы. Вы можете попытаться ограничить длину пути, используя функцию length (), например:

MATCH p=(n:Phone {phoneId:{0}})-[f:calling]-(m) OPTIONAL MATCH (m)-[r]-() where length(p)<{1} return m,r

Функция length () получает длинутропинка.Ссылаясь на this , # Path Path.

0 голосов
/ 13 июня 2018

Возможно, вам придется прибегнуть к «ручному» построению оператора Cypher в виде строки и его выполнению через сеанс, что позволяет выполнять произвольные запросы Cypher с помощью методов query, queryForObject и queryForObjects.

...