【问题标题】:How to pass parameters to a cypher using IN operator?如何使用 IN 运算符将参数传递给密码?
【发布时间】:2013-11-26 17:07:15
【问题描述】:

我们使用嵌入在我们的 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 运算符?

【问题讨论】:

  • 我复制了你的代码 sn-p,它对我有用。运行时会发生什么?
  • 我在其他地方遇到了一个导致错误的错误。一切正常

标签: java cypher neo4j


【解决方案1】:

neo4j 摇滚!!

事情按预期/期望工作。我在代码的其他地方遇到了一个错误,否则下面的 sn-p 工作得很好:

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);

【讨论】:

    猜你喜欢
    • 2011-02-15
    • 1970-01-01
    • 1970-01-01
    • 2017-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多