为什么参数索引不起作用?
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 将失去解析一次查询然后仅添加参数的可能性后续调用中的值。这将降低执行带注释的查询函数的性能。
在文档中,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 将失去解析一次查询然后仅添加参数的可能性后续调用中的值。这将降低执行带注释的查询函数的性能。