通过 spring 引导在 neo4j 查询中使用带有参数的 kleene star

Using kleene star with parameter in neo4j query via spring boot

我想做这样的查询

"match (x: Person {name: "Adam"}), (x)-[:friend *..n]-(y) return y"

其中 n 是一些参数。尝试通过 spring boot as

执行此操作

"match (x: Person {name: {name: "Adam"}}), (x)-[:friend *..{distance}]-(y) return y" 我有一个@Param("name"), @Param("distance") ...它告诉我

Parameter maps cannot be used in MATCH patterns (use a literal map instead, eg. "{id: {param}.id}")

我看不懂,怎么才能为所欲为?

目前您不能将该参数用作模式的长度。或者,您可以使用 java.text.MessageFormat:

int distance = 4;
String query = MessageFormat.format(
  "match (x: Person {name: {name: "Adam"}}), (x)-[:friend *..{0}]-(y) return y",
  distance);