从实体中删除关系时,Neo4J OGM-session.save()方法不会更新

从实体中删除关系时,Neo4J OGM-session.save()方法不会更新,neo4j,neo4j-ogm,Neo4j,Neo4j Ogm,main2中的session.save()方法不更新连接的子节点。移除的节点“tn2”仍然通过“tn1”与“to”连接 带螺栓配置的Neo4J 3.1.0和Neo4J OGM 2.1.2 下面是代码示例 @NodeEntity public class TestOrg { @GraphId private Long id; @Relationship(type="ROOT", Direction=Relationship.OUTGOING) TestNode rn; } public cla

main2中的session.save()方法不更新连接的子节点。移除的节点“tn2”仍然通过“tn1”与“to”连接

带螺栓配置的Neo4J 3.1.0和Neo4J OGM 2.1.2

下面是代码示例

@NodeEntity
public class TestOrg {
@GraphId
private Long id;

@Relationship(type="ROOT", Direction=Relationship.OUTGOING)
TestNode rn;
}

public class TestNode {
@GraphId
private Long id;

@Relationship(type="HAS", Direction=Relationship.OUTGOING)
List<TestNode> subs = new ArrayList<TestNode>();

//remove method: gets the name of the node and removes from the subs list.
}

main1{
TestNode tn1 = new TestNode();
tn1.setName("tn1");

TestNode tn2 = new TestNode();
tn2.setName("tn2");

TestNode tn3 = new TestNode();
tn3.setName("tn3");

tn1.addSub(tn2);
tn1.addSub(tn3);

TestOrg to = new TestOrg();
to.setName("to");
to.setRn(t1);
session.save(to);
}

main2{
...
//gets the id of the TestOrg with name "to" from db

TestOrg to = session.load(TestOrg.class, id, maxDepth); 

to.getRn().remove("tn2"); 

session.save(to, maxDepth); //session.save(to) 
}
@NodeEntity
公共类TestOrg{
@格拉希德
私人长id;
@关系(type=“ROOT”,Direction=Relationship.OUTGOING)
TestNode-rn;
}
公共类测试节点{
@格拉希德
私人长id;
@关系(type=“HAS”,Direction=Relationship.OUTGOING)
List subs=new ArrayList();
//remove方法:获取节点的名称并从subs列表中移除。
}
main1{
TestNode tn1=新的TestNode();
tn1.设置名称(“tn1”);
TestNode tn2=新的TestNode();
tn2.设置名称(“tn2”);
TestNode tn3=新的TestNode();
tn3.设置名称(“tn3”);
tn1.addSub(tn2);
tn1.addSub(tn3);
TestOrg to=新的TestOrg();
to.setName(“to”);
to.setRn(t1);
会话。保存(到);
}
缅因州2{
...
//从db获取名为“to”的TestOrg的id
TestOrg to=session.load(TestOrg.class,id,maxDepth);
to.getRn().remove(“tn2”);
session.save(到,maxDepth);//session.save(到)
}

您很可能没有从两侧删除对“tn2”的引用。
to.getRn().remove(“tn2”)
从TestNode中删除引用,但不会从TestOrg中删除它。尝试将
添加到.setRn(null)
中,它应该可以工作