【发布时间】:2014-09-10 18:31:02
【问题描述】:
我正在尝试使用 neo4j、spring 数据图存储库进行 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);
}
从日志中我可以看到生成的查询如下所示:
匹配(n:东西) 使用索引 n:Stuff(uniqueKey) WHERE n.uniqueKey IN {keys} 返回 n
参数 {keys=['key1', 'key2']}
(无论如何它就是这样记录的 - 我知道参数不会像密码那样传递)
如果我从日志中复制查询并在不使用参数的情况下运行它:
匹配(n:东西) 使用索引 n:Stuff(uniqueKey) WHERE n.uniqueKey IN ['key1', 'key2'] 返回 n
它可以工作,并返回我的 2 个“东西”,但从我的存储库查询中,我得到的结果为零。
任何想法为什么 params 不能像我对 Cypher 的期望一样工作?
【问题讨论】:
标签: neo4j spring-data spring-data-neo4j