如何使用IN运算符将参数传递给cypher?

时间:2013-11-26 17:07:15

标签: java cypher neo4j

我们正在使用嵌入在我们的java服务器中的Neo4j 2.0 RC1。我们在我们的密码中对变量进行参数化。我们的一个密码使用IN子句,例如

MATCH (a) WHERE a.name IN ["Peter", "Tobias"] RETURN a

所以我尝试过这样的事情:

String cypher = "MATCH (a) WHERE a.name IN {names} RETURN a";
Map<String, Object> params = new HashMap<>();
List<String> names = new ArrayList<>();
//add some names to the names list
params.put("names", names);
ExecutionResult result = engine.execute(cypher, params);

它显然不起作用,我如何参数化IN运算符?

1 个答案:

答案 0 :(得分:2)

neo4j摇滚!

事情按预期/期望工作。我在代码中的其他位置有一个错误,否则以下代码段工作正常:

String cypher = "MATCH (a) WHERE a.name IN {names} RETURN a";
Map<String, Object> params = new HashMap<>();
List<String> names = new ArrayList<>();
//add some names to the names list
params.put("names", names);
ExecutionResult result = engine.execute(cypher, params);