1
在我們的項目中,PEPOLEs通過KNOWS關係連接。我們需要深入查詢一個朋友,其中n是用戶輸入的參數。我們使用Spring Data Neo4j來實現它。如何在Cypher語句中使用參數進行可變長度模式匹配?
public interface PeopleRepository extends GraphRepository<People>
{
@Query("MATCH (startnode{name:{name}})-[:KNOWS*1..{depth}]-(remote_friend) RETURN remote_friend.name");
List<People> getFriendsInDepth(@Param("name") String name, @Param("depth") Integer depth);
}
上述代碼將不起作用。但是,如果我使用固定的Integer值替換{depth}參數,如下所示:
@Query("MATCH (startnode{name:{name}})-[:KNOWS*1..2]-(remote_friend) RETURN remote_friend.name");
List<People> getFriendsInDepth(@Param("name") String name, @Param("depth") Integer depth);
它的工作原理。我知道問題是由深度參數引起的。但是我嘗試了很多方法來替換{depth},例如:toInt({depth}),它仍然不起作用。有沒有人知道如何使用Cypher語句中的參數進行可變長度模式匹配?