Java 删除Neo4j中的节点及其所有关系
我正在尝试从Neo4j数据库中删除所有Java 删除Neo4j中的节点及其所有关系,java,spring,neo4j,spring-data,spring-data-neo4j,Java,Spring,Neo4j,Spring Data,Spring Data Neo4j,我正在尝试从Neo4j数据库中删除所有类型。我有一个Type类的存储库,typeRepository,我称之为typeRepository.deleteAll()。但是,并非所有内容都被删除。只删除其节点,而将BusinessLogic节点保留在数据库中。我不确定在这一点上还应该尝试什么,因为它的方法名称意味着它将删除所有的东西,包括它自己和与它自己相关的东西。下面是我的持久化类的外观,它扩展了我的数据库包含的基本类型的对象: @NodeEntity public class BaseType
类型
。我有一个Type
类的存储库,typeRepository
,我称之为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;
}
}
,
,
我只存储类型
实例,通过调用
typeRepository.save(新类型(名称、业务逻辑))代码> 我认为SDN本身并没有进行级联删除。那么,为什么不先通过各自的存储库删除BusinessLogic对象,然后再删除Type对象呢?我没有BusinessLogic存储库。只需在域类之外的某个地方执行,例如在服务、控制器或存储库对象中,然后为操作注入Neo4jTemplate即可。
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;
}
}