Подтвердить что ты не робот

Как проверить, связаны ли два узла друг с другом, в встроенной базе данных neo4j в java?

Как проверить, связаны ли два узла друг с другом, в встроенной базе данных neo4j в java?

Я хочу синтаксис, пожалуйста, или ссылку на учебник, я видел веб-сайт neo4j, но не нашел его.

Спасибо.

4b9b3361

Ответ 1

Учитывая два узла "nodeA" и "nodeB",

  • получает все отношения, связанные с "nodeA",

    rels = nodeA.getRelationships();
    
  • итерация через набор отношений rels, для каждой связи rel, проверьте, является ли другой конец node nodeB

    rel.getOtherNode(nodeA).equals(nodeB)
    
  • если указанное выражение выполняется для одного из отношений, то nodeA и nodeB связаны.

Вот java API для "Node" и "Relationshiip",

http://api.neo4j.org/current/

Ответ 2

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 будет содержать ваш ответ