返回错误,并带有以下注释。
@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
您可能需要诉诸"手动"将 Cypher 语句构造为 String 并通过 Session 执行它,这允许通过其查询、queryForObject 和 queryForObjects 方法执行任意 Cypher 查询。
> Cypher 不像您那样支持对关系的限制。您可以尝试使用函数 length(( 限制路径的长度,如下所示:
MATCH p=(n:Phone {phoneId:{0}})-[f:calling]-(m) OPTIONAL MATCH (m)-[r]-() where length(p)<{1} return m,r
函数 length(( 获取路径的长度。参考这个,#Path 函数。