Java Spring数据/Neo4j@Query注释属性替换

Java Spring数据/Neo4j@Query注释属性替换,java,spring-boot,neo4j,spring-data,spring-data-neo4j,Java,Spring Boot,Neo4j,Spring Data,Spring Data Neo4j,我正在开发一个基于SpringData/Neo4j的推荐服务,遇到了@Query注释的问题。我正在尝试将属性(网络用户ID)传递到密码查询中: package io.woolford.neo4j.repository; import io.woolford.neo4j.entity.PageUrl; import org.springframework.data.neo4j.annotation.Query; import org.springframework.data.neo4j.repo

我正在开发一个基于SpringData/Neo4j的推荐服务,遇到了
@Query
注释的问题。我正在尝试将属性(网络用户ID)传递到密码查询中:

package io.woolford.neo4j.repository;

import io.woolford.neo4j.entity.PageUrl;
import org.springframework.data.neo4j.annotation.Query;
import org.springframework.data.neo4j.repository.Neo4jRepository;
import org.springframework.data.repository.query.Param;

import java.util.List;


public interface RecommendationsRepository extends Neo4jRepository<PageUrl, Long> {
    @Query("MATCH (n {id: '$network_userid' }) RETURN n")     // simplified query for brevity
    List<PageUrl> getRecommendations(@Param("network_userid") String network_userid);
}
当我打开调试时,似乎Cypher查询没有用以下值替换属性:

[nio-8080-exec-1] o.n.o.drivers.bolt.request.BoltRequest   : Request: MATCH (n {id: '$network_userid' }) RETURN n with params {0=1447e32a-3381-4e61-a8ae-9a05b8df4ddb, network_userid=1447e32a-3381-4e61-a8ae-9a05b8df4ddb}
为了更好地衡量,我进行了数据包捕获,以查看通过线路发送的内容:

...d'...............+MATCH (n {id: '$network_userid' }) RETURN n..0.$1447e32a-3381-4e61-a8ae-9a05b8df4ddb.network_userid.$1447e32a-3381-4e61-a8ae-9a05b8df4ddb......?..n.....
。。。这再次表明,房地产替代没有发生

你能看出我做错了什么吗


源代码:

查询的唯一问题是,您正在像字符串一样转义
“$network\u userid”
,但您应该执行以下操作:
@Query(“MATCH(n{id:$network\u userid})返回n”)
不带字符串文字指示

...d'...............+MATCH (n {id: '$network_userid' }) RETURN n..0.$1447e32a-3381-4e61-a8ae-9a05b8df4ddb.network_userid.$1447e32a-3381-4e61-a8ae-9a05b8df4ddb......?..n.....