【问题标题】:How to add a given label to given node by using spring data neo4j?如何使用 spring data neo4j 将给定标签添加到给定节点?
【发布时间】:2020-06-15 03:29:35
【问题描述】:

我使用spring data neo4j @query 给节点添加标签,但是有一些语法。如何正确传递参数?

如:

@Query("MATCH (st) WHERE st.originId = $originId SET st:$label RETURN st")  
public Node addLabel(String originId, String label);

@Query("MATCH (st) WHERE st.originId = $originId SET st:label RETURN st") 
public Node addLabel(String originId, @Param("label") String label);

@Query("MATCH (st) WHERE st.originId = $originId SET st:$1 RETURN st")
public Node addLabel(String originId, String label);

以上所有语句都有错误。编译器告诉我':'有错误。

那么,正确的说法是什么?

【问题讨论】:

    标签: java neo4j spring-data cypher


    【解决方案1】:

    目前,cypher 不支持分配动态节点标签。您将需要使用 APOC 库:

    MATCH (st) WHERE st.originId = $originId
    CALL apoc.create.addLabels( [st], [$label​]) YIELD node
    RETURN distinct 'done'
    

    【讨论】:

    • 谢谢。我使用 Key Label 的静态值来解决问题。 MATCH (st) WHERE st.originId = $originId SET st:KeyLabelName RETURN st
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-03
    • 2018-01-03
    • 1970-01-01
    • 1970-01-01
    • 2021-03-16
    • 1970-01-01
    相关资源
    最近更新 更多