Neo4J不知道如何比较它

时间:2015-02-24 19:45:18

标签: neo4j cypher graph-databases

我正在尝试使用List参数实现简单的Spring Neo4j存储库函数:

@Query("MATCH (c:Criterion) WHERE c IN {0} return c")
List<Criterion> getAllCriteria(List<Criterion> criteria);

执行后我遇到以下错误:

  

org.neo4j.cypher.IncomparableValuesException:不知道如何   比较一下。左:节点[513] {名称:“测试”,描述:“测试   description“}(NodeProxy);右:   标准[id = 513,名称=测试,描述=测试描述](标准)

我哪里错了?

2 个答案:

答案 0 :(得分:1)

试试这个:

@Query("MATCH (c:Criterion) WHERE ID(c) IN {0} return c")
List<Criterion> getAllCriteria(List<Criterion> criteria);

即使这可能有效,但您的查询确实有点奇怪,因为返回的列表将等于您传入的内容。

答案 1 :(得分:1)

不确定转换参数列表。 单个实体会转换为其ID。

因此,如果您将Criterions转换为他们的graph-id,您可以这样做:

@Query("MATCH (c:Criterion) WHERE ID(c) IN {0} return c")
List<Criterion> getAllCriteria(List<Long> criteria);