代码之家  ›  专栏  ›  技术社区  ›  alexanoid

Neo4J不知道如何比较

  •  1
  • alexanoid  · 技术社区  · 9 年前

    我试图用List参数实现简单的Spring Neo4j存储库函数:

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

    执行后,我收到以下错误:

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

    我错在哪里?

    2 回复  |  直到 9 年前
        1
  •  1
  •   Michael Hunger    9 年前

    不确定参数列表是否已转换。 单个实体 转换为他们的id。

    因此,如果您将标准转换为其图形id,您可以执行以下操作:

    @Query("MATCH (c:Criterion) WHERE ID(c) IN {0} return c")
    List<Criterion> getAllCriteria(List<Long> criteria);
    
        2
  •  1
  •   cybersam    9 年前

    试试看:

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

    尽管这可能有效,但您的查询似乎有点奇怪,因为返回的列表将等于您传递的列表。