在文档中,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:
如果我想要节点标签"电影"要成为参数,它还会显示错误消息:
@Query("MATCH (movie:{label} {title={0}}) RETURN movie")
Movie getMovieFromTitle(String movieTitle, String label);
答案 0 :(得分:0)
我不知道您使用的IntelliJ版本,但第一个查询是正确的。在spring-data-neo4j project中还有一个测试用例。
无法使用第二种查询语法,因为在执行查询的数据库级别上不支持此语法。如果在调用DB之前在SDN中支持,则每次执行查询时都必须解析查询(并替换模式),并且SDN将无法解析查询一次,然后只需添加参数后续调用中的值。这将降低执行带注释的查询函数的性能。