Spring数据neo4j:无效语法'$';在Cypher和x3002中;如何替换'$';与';{}';?

Spring数据neo4j:无效语法'$';在Cypher和x3002中;如何替换'$';与';{}';?,neo4j,cypher,spring-data-neo4j,Neo4j,Cypher,Spring Data Neo4j,spring数据neo4j生成的密码使用“$”传递值,这将导致neo4j出现无效语法错误 例如: spring数据neo4j生成的密码用于: 可选findById(长id) 是 “MATCH()-[r0:`linkType`]->(其中ID(r0)=$ID,其中r0,STARTNODE(r0)作为n,ENDNODE(r0)作为m返回r0,n,m,ID(r0)” 这将获取无效语法的错误。 我用@Query解决了这个问题: @Query(“MATCH()-[r0:`linkType`]->()其中I

spring数据neo4j生成的密码使用“$”传递值,这将导致neo4j出现无效语法错误

例如:

spring数据neo4j生成的密码用于:

可选findById(长id)

“MATCH()-[r0:`linkType`]->(其中ID(r0)=$ID,其中r0,STARTNODE(r0)作为n,ENDNODE(r0)作为m返回r0,n,m,ID(r0)”

这将获取无效语法的错误。 我用@Query解决了这个问题:

@Query(“MATCH()-[r0:`linkType`]->()其中ID(r0)={ID},其中r0,STARTNODE(r0)作为n,ENDNODE(r0)作为m返回r0,n,m,ID(r0)”)
可选的findById(长id)

但是,当我想使用PagingAndSortingRepository时,我不能使用@Query来解决这个问题。因为它将在edn自动添加
跳过$sdnSkip LIMIT$sdnLimit


我如何解决这个问题?谢谢。

您使用的是非常旧的neo4j版本(早于3.0)

在neo4j 3.0中,
{foo}
语法有利于
$foo
语法。在Neo4J4.0中,
{foo}
语法是完全错误的

您不应该试图支持过时的
{foo}
语法,而应该将您的neo4j安装升级到更新(理想情况下是最新)的neo4j版本。如果您有数据要升级,则必须分两步升级:


我们使用的是真正的旧版neo4j吗?在neo4j 3.0中,
{foo}
语法有利于
$foo
语法。在neo4j 4.0中,
{foo}
语法完全无效。@cybersam我使用的是neo4j的旧版本:2.2.3。您应该使用{variable}语法,但确保从neo4j包导入查询注释(org.springframework.data.neo4j.annotation.Query),而不是默认的spring数据查询