在Neo4j中删除节点及其所有关系

时间:2013-09-19 18:21:59

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

我正在尝试从我的Neo4j数据库中删除所有Type。我有一个TypetypeRepository的存储库,我称之为typeRepository.deleteAll();。但是,并非所有内容都被删除。仅删除其节点,使BusinessLogic节点在数据库中保持活动状态。我不知道还有什么可以尝试,因为它的方法名称暗示它将删除所有东西,包括它自己和与自身相关的东西。以下是我的持久化类的外观,它扩展了我的数据库包含的基类型对象:

@NodeEntity
public class BaseType {

    @GraphId
    private Long id;

    @Indexed(unique=true) String uid;
    private String name;

    BaseType() {}

    BaseType(String name) {
        this.name = name;
    }
}

public class Type extends BaseType {

    @RelatedTo(type="businessLogic")
    @Fetch
    private BusinessLogic businessLogic;

    public Type() {super();}

    public Type(String name, BusinessLogic businessLogic) {
        super(name);
        this.businessLogic = businessLogic;
    }
}

@NodeEntity
@XmlAccessorType(XmlAccessType.NONE)
public class BusinessLogic implements Serializable {

    @GraphId
    private Long id;

    private static final long serialVersionUID = -634875134095817304L;

    @XmlElement
    private String create;

    public void setCreate(String create) {
        this.create = create;
    }

    public String getCreate() {
        return create;
    }
}

我只存储Type个实例,我通过调用

来实现

typeRepository.save(new Type(name, businessLogic));

1 个答案:

答案 0 :(得分:0)

我不认为SDN会自行进行级联删除。那么,为什么不首先通过各自的存储库删除BusinessLogic对象,然后是Type对象?