我正在尝试使用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,名称=测试,描述=测试描述](标准)
我哪里错了?
答案 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);