在java的neo4j嵌入式数据库中,我应该如何检查两个节点是否相互关系?
2022-09-04 21:40:42
在java的neo4j嵌入式数据库中,我应该如何检查两个节点是否相互关系?
我想要语法请或教程链接,我看过neo4j网站但没有找到它。
谢谢。
在java的neo4j嵌入式数据库中,我应该如何检查两个节点是否相互关系?
我想要语法请或教程链接,我看过neo4j网站但没有找到它。
谢谢。
给定两个节点“节点A”和“节点B”,
获取附加到“节点 A”的所有关系,
rels = nodeA.getRelationships();
循环访问关系集合“rels”,对于每个关系“rel”,测试另一个终端节点是否为nodeB
rel.getOtherNode(nodeA).equals(nodeB)
如果上述表达式对于其中一个关系成立,则节点 A 和节点 B 是连接的。
这是“Node”和“Relationshiip”的java API,
private boolean sharedRelationshipExists( Node nodeA, long nodeBId)
{
Iterator<Relationship> iterator = nodeA.getRelationships().iterator();
while ( iterator.hasNext() )
{
if (iterator.next().getOtherNode( nodeA ).getId() == nodeBId) return true;
}
return false;
}
// in another part
boolean sharedRelationshipBetweenAB;
if ( nodeA.getDegree() < nodeB.getDegree() )
{
sharedRelationshipBetweenAB = sharedRelationshipExists( nodeA, nodeB.getId() );
}
else
{
sharedRelationshipBetweenAB = sharedRelationshipExists( nodeB, nodeA.getId() );
}
布尔值将包含您的答案sharedRelationshipBetweenAB