我使用Spring数据Neo4j的4.0.0与2.2.1的Neo4j,我试图创建具有完全相同的标签,两个节点之间的关系。
所以,我有一个NodeEntity类,我有内部与同类型的类本身的变量,并注释它作为关系。 但是,当我的对象保存到使用库对象的save()方法的数据库,不能创建关系。
预先感谢您和您的建议将非常感激!
编辑
这里是节点实体类
public class ArchitectureUnitState extends UnitState {
public ArchitectureUnitState()
{
super();
}
public ArchitectureUnitState(String name, String description, String parentArchitectureUnitName)
{
super(name, description);
this.parentArchitectureUnitName = parentArchitectureUnitName;
}
@Relationship(type="PART_OF", direction = Relationship.OUTGOING)
private ArchitectureUnitState architectureUnitState;
@Relationship(type="STATE_OF", direction = Relationship.OUTGOING)
private ArchitectureUnit architectureUnit;
@Transient
private String parentArchitectureUnitName;
public void partOf(ArchitectureUnitState architectureUnitState) {
this.architectureUnitState = architectureUnitState;
}
public void stateOf(ArchitectureUnit architectureUnit) {
this.architectureUnit = architectureUnit;
}
public void childOf(String parentArchitectureUnitName) {
this.parentArchitectureUnitName = parentArchitectureUnitName;
}
public String getParentName() {
return parentArchitectureUnitName;
}
}
@NodeEntity
public class UnitState {
@GraphId
protected Long id;
private String name;
private String description;
public UnitState() {
}
public UnitState(String name, String description) {
this.name = name;
this.description = description;
}
public void setName(String name) {
this.name = name;
}
public void setDescription(String description) {
this.description = description;
}
public String getName() {
return name;
}
public String getDescription() {
return description;
}
}
所以,该序列为:I创建的ArchitectureUnitState目的,映射一个到另一个,则与ArchitectureUnitStateRepository的保存()方法保存。
如果我喜欢的,是不是创造了PART_OF关系,虽然我在调试该值在那里看到的。
我的解决办法,现在是我保存所有ArchitectureUnitState节点首先,从数据库中再次检索它们,映射另一个人,然后再保存它。 通过这种方式,可以建立关系,但我需要保存两次。