Neo4j Spring Data GraphRepository参数列表

时间:2014-07-19 21:10:20

标签: neo4j spring-data spring-data-neo4j

我正在尝试使用neo4j,弹簧数据图形存储库进行Cypher IN查询

公共接口StuffRepository扩展了GraphRepository {

Vote findByUniqueKey(String uniqueKey);

@Query(value = "MATCH (Stuff)" +
        "USING INDEX n:Vote(uniqueKey)" +
        "WHERE n.uniqueKey IN {keys}" +
        "RETURN n")
List<Stuff> findAllWithKeys(@Param("keys") List<String> keys);

}

从日志

我可以看到生成的查询如下所示:

MATCH(n:东西) 使用索引n:Stuff(uniqueKey) 在哪里n.uniqueKey IN {keys} 返回

params {keys = [&#39; key1&#39;,&#39; key2&#39;]}

(这就是它如何记录 - 我知道params并没有像密码那样传递)

如果我从日志中复制查询并在不使用参数的情况下运行它:

MATCH(n:东西) 使用索引n:Stuff(uniqueKey) 在哪里n.uniqueKey IN [&#39; key1&#39;,&#39; key2&#39;] 返回

它有效,并返回给我我的2&#39; Stuff&#39;,但是从我的存储库查询中我得到的结果为零。

任何有关为什么params无效的想法,我对Cypher的期望是什么?

1 个答案:

答案 0 :(得分:1)

您可以尝试使用字符串[],可能是参数转换中的错误。如果是这样,请提出一个问题。