在java中的neo4j嵌入式数据库中,我应该如何检查两个节点之间是否存在关系?
在java中的neo4j嵌入式数据库中,我应该如何检查两个节点之间是否存在关系 我想要的语法请或教程链接,我看到了neo4j网站,但没有找到它 谢谢。给定两个节点“nodeA”和“nodeB”在java中的neo4j嵌入式数据库中,我应该如何检查两个节点之间是否存在关系?,neo4j,embedded-database,java,Neo4j,Embedded Database,Java,在java中的neo4j嵌入式数据库中,我应该如何检查两个节点之间是否存在关系 我想要的语法请或教程链接,我看到了neo4j网站,但没有找到它 谢谢。给定两个节点“nodeA”和“nodeB” 获取附加到“nodeA”的所有关系 迭代关系“rel”集合,对于每个关系“rel”,测试另一端节点是否为nodeB rel.getOtherNode(nodeA).equals(nodeB) 如果上述表达式适用于其中一个关系,则nodeA和nodeB是连接的 下面是“节点”和“关系”的java AP
rel.getOtherNode(nodeA).equals(nodeB)
私有布尔sharedRelationshipExists(节点节点A、长节点ID)
{
迭代器迭代器=nodeA.getRelationships().Iterator();
while(iterator.hasNext())
{
if(iterator.next().getOtherNode(nodeA.getId()==nodeBId)返回true;
}
返回false;
}
//在另一部分
布尔sharedrelationshipBeweenAb;
if(nodeA.getDegree()
<布尔> <代码> SydRelabsIn AB < /代码>将保留您的答案< /p>我只是想补充,在执行此搜索之前,您应该考虑<代码> NoDEA < /C> >和>代码> NoDEB < /代码>。因为你可以从任何一个节点开始执行它。如果你可能有数千个关系,那么这就不能很好地工作。
rel.getOtherNode(nodeA).equals(nodeB)
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() );
}