ExecutionEngine无法识别参数

时间:2013-05-02 16:45:06

标签: java neo4j cypher

我正在使用Neo4j 1.8.RC1,并试图为我的图中的节点生成聚类系数。

我有以下代码,据我所知,它是在Linux系统上工作,但在我的Windows机器上不起作用:

Map<String, Object> params = new HashMap<String, Object>();

String query;
String typeString;

if (type == <some type>) {
    typeString = "TYPE1";
}
else {
    typeString = "TYPE2";
}

params.put("myid", userid);
query = "start a=node(*) match (a)-[:"+ typeString +"]-(b) WITH a, count(distinct b) as n "
        + "match (a)-[:" + typeString + "]-()-[r:"+ typeString+"]-()-[:"+typeString+"]-(a) where a.thisId! = {myid} return n, count(distinct r) as relcount";

ExecutionEngine engine = new ExecutionEngine(graphDb);
ExecutionResult result = engine.execute(query, params);

当我尝试访问结果时,我得到了

Exception in thread "main" java.lang.RuntimeException:    org.neo4j.cypher.ParameterNotFoundException: Expected a parameter named myid

我已经介入并确认它在那里。发生了什么事?

1 个答案:

答案 0 :(得分:0)

正如上面的评论所指出的,通过从1.8.RC1更新到1.8.2解决了这个问题。虽然我没有指向错误报告,但这显然是Neo4j中的一个错误,在这些版本之间解决了。