Java 如何使用IN运算符将参数传递给密码器?
我们正在使用嵌入java服务器中的Neo4j 2.0 RC1。我们将密码中的变量参数化。我们的一个密码在子句中使用,例如Java 如何使用IN运算符将参数传递给密码器?,java,cypher,neo4j,Java,Cypher,Neo4j,我们正在使用嵌入java服务器中的Neo4j 2.0 RC1。我们将密码中的变量参数化。我们的一个密码在子句中使用,例如 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<>(); L
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);
String cypher=“匹配(a),其中{names}中的.name返回a”;
Map params=新的HashMap();
列表名称=新的ArrayList();
//将一些名称添加到名称列表中
参数put(“名称”,名称);
ExecutionResult=engine.execute(密码,参数);
它显然不起作用,如何在操作员中参数化?neo4j rocks
事情按预期进行。我在代码的其他地方发现了一个bug,否则下面的代码片段就可以正常工作了:
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);
String cypher=“匹配(a),其中{names}中的.name返回a”;
Map params=新的HashMap();
列表名称=新的ArrayList();
//将一些名称添加到名称列表中
参数put(“名称”,名称);
ExecutionResult=engine.execute(密码,参数);
我复制了你的代码片段,它适合我。当你运行它的时候会发生什么?我在其他地方发现了一个导致错误的bug。一切正常