如何在弹簧数据 neo4j 中传递关系查询参数



返回错误,并带有以下注释。

@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 函数。

相关内容

  • 没有找到相关文章

最新更新