【问题标题】:spring-data-neo4j query using dynamic key and dynamic valuespring-data-neo4j 使用动态键和动态值查询
【发布时间】:2018-03-14 09:06:01
【问题描述】:

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}。但是My property的key和value一样是动态的,如何实现,有可能吗?

【问题讨论】:

    标签: neo4j spring-data-neo4j


    【解决方案1】:

    简短回答:查询将“按原样”发送到数据库,因为 cypher 只支持值的占位符,这将导致错误。

    略长一点的答案:当涉及到执行 方法时,Spring Data Neo4j 会查看它是否已经预处理了 查询 并且要么处理并缓存它,要么只是从缓存中加载它。这样做是为了缩短从应用程序执行方法所需的时间。 预处理意味着 SDN 知道那里有哪些参数,并在调用 方法 时将值添加到正确的位置。 如果 SDN 为查询提供比 cypher 更多的功能,则每次调用 method 时都必须处理 query 以创建可与 Neo4j 一起使用的新查询.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-01
      • 1970-01-01
      • 2018-07-06
      • 2018-11-25
      • 2015-01-27
      • 2019-02-20
      相关资源
      最近更新 更多