节点和结束节点中间经过的路径关系"/>
JAVA代码实现指定开始节点和结束节点中间经过的路径关系
Neo4jUtil.java
public void getRelationPathByCondition(String startNodeId,String startNodeLabel,String endNodeLabel,String endNodeId) {
//拼装开始节点的查询语句
String startNodeCql = String.format("match data=(:`%s`{id:'%s'})-[*]->", startNodeLabel, startNodeId);//拼装结束节点的查询语句String endNodeCql = String.format("(:`%s`{id:'%s'}) return data", endNodeLabel, endNodeId);//如果有中间路径还可以继续进行拼接
//最终组装好的查询语句
String cypherSql= startNodeCql.concat(endNodeCql);Result query = session.query(cypherSql, new HashMap<>(16));for (Map<String, Object> map : query.queryResults()) {InternalPath.SelfContainedSegment[] ps = (InternalPath.SelfContainedSegment[]) map.get("data");for (InternalPath.SelfContainedSegment p : ps) {//开始节点Node start = p.start();Map<String, Object> startMap = start.asMap();startMap.get("name");startMap.get("id");//结束节点Node end = p.end();Map<String, Object> endMap = end.asMap();endMap.get("name");endMap.get("id") ;//关系Relationship relationship = p.relationship();Map<String, Object> relationshipMap = relationship.asMap();relationshipMap.get("name");//上面得到的节点的信息,按照自己的要求组装返回格式即可。}}session.clear();}
更多推荐
JAVA代码实现指定开始节点和结束节点中间经过的路径关系
发布评论