以下面的年度报告返回错误。
@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模式(改为使用文字图,例如“{id:{param} .id}”)(第1行,第45栏(偏移:44))
我们需要一种优雅的方法来解决这个问题,而不是编写许多接口。
MATCH (n:Person {name:'AAA'})-[f]-(m) where type(f)="Follow" OPTIONAL MATCH (m)-[r]-() return m,r
cypher无法解决关卡问题。
{{1}}
答案 0 :(得分:1)
您可能需要求助于“手动”将Cypher语句构造为String并通过Session执行它,这允许通过其query,queryForObject和queryForObjects方法执行任意Cypher查询。
答案 1 :(得分:0)
Cypher不像以前那样支持对关系的限制。您可以尝试使用function length()来限制路径的长度,如下所示:
MATCH p=(n:Phone {phoneId:{0}})-[f:calling]-(m) OPTIONAL MATCH (m)-[r]-() where length(p)<{1} return m,r
Function length()获取路径的长度。引用this,#Path函数。