Reputation: 539
How should I check if two nodes have relationship with each other,in neo4j embedded database in java?
I want the syntax please or a tutorial link,I have seen neo4j website but didn't find it.
Thanks.
Upvotes: 13
Views: 2322
Reputation: 6251
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() );
}
the boolean sharedRelationshipBetweenAB
will hold your answer
Upvotes: 0
Reputation: 2592
Given two nodes "nodeA" and "nodeB",
gets all relationships attached to "nodeA",
rels = nodeA.getRelationships();
iterate through the collection of relationships "rels", for each relationship "rel", test whether the other end node is nodeB
rel.getOtherNode(nodeA).equals(nodeB)
if the above expression holds true for one of the relationships, then nodeA and nodeB are connected.
Here is the java API for "Node" and "Relationshiip",
Upvotes: 12