为什么参数索引不起作用?

Why doesn't the parameter index work?

在文档中,https://docs.spring.io/spring-data/neo4j/docs/current/reference/html/

它使用 {0} 引用参数 'movieTitle'。

@Query("MATCH (movie:Movie {title={0}}) RETURN movie")
Movie getMovieFromTitle(String movieTitle);

但是,在我自己的代码中,如果我使用“{title={0}”,我的IntelliJ 总是报语法错误。我可以通过将其更改为

来解决问题
{title:{movieTitle}

这里我要用实参名和冒号加{}。

有什么技巧吗?我认为文档没有错。

问题 2:

如果我要节点标签"Movie"作为参数,也会显示错误信息:

@Query("MATCH (movie:{label} {title={0}}) RETURN movie")
Movie getMovieFromTitle(String movieTitle, String label);

我不知道你使用的是什么版本的IntelliJ,但第一个查询是正确的。在 spring-data-neo4j project.

中也有一个测试用例

无法使用第二种查询语法,因为在执行查询的数据库级别不支持这种语法。如果在调用数据库之前在 SDN 中支持它,则每次执行查询时都必须解析查询(并替换模式),SDN 将失去解析一次查询然后仅添加参数的可能性后续调用中的值。这将降低执行带注释的查询函数的性能。