将End Node删除为与neo4j cypher查询的关系

时间:2013-09-24 22:25:37

标签: java spring neo4j cypher spring-data-neo4j

我正在使用Spring neo4j和Java。关于我希望坚持的课程我有@NodeEntity。在其中一些类中,我的数据成员使用@RelatedTo@Fetch进行了注释。我希望能够删除包含@NodeEntity的其中一个类,并删除与其@RelatedTo@Fetch注释相关联的所有数据成员。我创建了一个删除查询,试图删除通过它们的关系连接到它的节点及其节点:

   @Query("start n = node:uid(uid={0}) "
        + "match n-[*]-x WITH x MATCH x-[r]-() "
        + "delete x,r")
public void deleteByUid(String uid);

这会删除顶级节点及其关系,但会留下通过该关系连接到顶级节点的节点。如何使用cypher修改查询以执行此操作?

1 个答案:

答案 0 :(得分:2)

您可能想尝试

@Query("start n = node:uid(uid={0}) "
    + "match n-[*0..]-x WITH x MATCH x-[r]-() "
    + "delete x,r")
public void deleteByUid(String uid);

由于*默认为[*1..]