spring-data-neo4j 查询,
如下面的代码:
public interface NodeReposity extends Neo4jRepository<Node,Long> {
@Query("MATCH(n:Node{{key}={value}})return n")
Iterable<Node> queryByProperty(@Param("key")String key,@Param("value") String value);
}
但它说{key}必须是字符串中的变量,例如MATCH(n:Node{name={value}})return n
。不能是{key}。但是,我的财产的关键是动态,如价值,如何实施,是否可能?
答案 0 :(得分:1)
简答:查询将被发送&#34;因为它是&#34;到数据库,因为cypher只支持值的占位符,这将导致错误。
稍微长一点的回答:当执行方法时,Spring Data Neo4j会查看它是否已预处理查询并处理和缓存它或只是从缓存中加载它。这样做是为了缩短从应用程序执行方法所需的时间。 预处理意味着SDN知道那里有哪些参数,只需在调用方法时将值添加到正确的位置。 如果SDN为查询提供的功能多于cypher,则每次调用方法时都必须处理查询以创建可与Neo4j一起使用的新查询