我正在尝试使用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的期望是什么?
答案 0 :(得分:1)
您可以尝试使用字符串[],可能是参数转换中的错误。如果是这样,请提出一个问题。