1
在Cypher支架返回鄰國應該是這樣的:如何使用java插件在Neo4j中返回節點鄰居?
START n=node({nodeId}) MATCH n--m RETURN m;
我努力創建一個Java插件,做同樣的。之後我想查看返回的鄰居的屬性等等。這是我的代碼,我試圖獲得關係和他們的EndNodes。我究竟做錯了什麼?我只返回節點本身,但沒有從「while-Loop」中返回。
import java.util.Iterator;
import java.util.stream.Stream;
import org.neo4j.graphdb.GraphDatabaseService;
import org.neo4j.graphdb.Label;
import org.neo4j.graphdb.Node;
import org.neo4j.graphdb.Relationship;
import org.neo4j.graphdb.ResourceIterator;
import org.neo4j.logging.Log;
import org.neo4j.procedure.*;
import org.neo4j.procedure.Description;
import org.neo4j.procedure.Name;
public class Correlation {
@Context
public GraphDatabaseService db;
@Context
public Log log;
@UserFunction(value = "boris.getNeighbours")
@Description("boris.getNeighbours- finds Nodes one step away")
public Node passName2(@Name("nodeId") long nodeId)
{
Node node = db.getNodeById(nodeId);
Iterable<Relationship> rels = node.getRelationships();
Iterator<Relationship> I_rel = rels.iterator();
while (I_rel.hasNext()) {
Relationship rel = I_rel.next();
Node endNode = rel.getEndNode();
return endNode;
}
return node;
}
}