Commit f597c9c3 by qiuchaofei

1修改返回结果,表嵌套字段。字段级关系独立一个map

parent cf1af814
package com.keymobile.metadata.metadataRelation.pojo.returnBean; package com.keymobile.metadata.metadataRelation.pojo.returnBean;
import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
public class ReturnNode { public class ReturnNode {
...@@ -15,10 +17,21 @@ public class ReturnNode { ...@@ -15,10 +17,21 @@ public class ReturnNode {
private String cnName; private String cnName;
private String dataPath; private String dataPath;
private Map<String ,String> attributeMaps = new HashMap<>(); private Map<String ,String> attributeMaps = new HashMap<>();
private Map<String ,String> relationMaps = new HashMap<>(); private Map<String ,String> relationMaps = new HashMap<>();
public List<ReturnNode> getChildren() {
return children;
}
public void setChildren(List<ReturnNode> children) {
this.children = children;
}
private List<ReturnNode> children = new ArrayList<>();
public Map<String, String> getRelationMaps() { public Map<String, String> getRelationMaps() {
return relationMaps; return relationMaps;
} }
......
...@@ -18,6 +18,15 @@ public class ReturnReslult { ...@@ -18,6 +18,15 @@ public class ReturnReslult {
this.count = count; this.count = count;
} }
public List<ReturnEdge> getChildrenEdges() {
return childrenEdges;
}
public void setChildrenEdges(List<ReturnEdge> childrenEdges) {
this.childrenEdges = childrenEdges;
}
private List<ReturnEdge> childrenEdges = new ArrayList<>();
private List<ReturnEdge> edges = new ArrayList<>(); private List<ReturnEdge> edges = new ArrayList<>();
......
...@@ -456,6 +456,7 @@ public class TableServiceImpl implements ITableService { ...@@ -456,6 +456,7 @@ public class TableServiceImpl implements ITableService {
long timeStart = System.currentTimeMillis(); long timeStart = System.currentTimeMillis();
Map<String,ReturnNode> returnNodeMap = new HashMap<>(); Map<String,ReturnNode> returnNodeMap = new HashMap<>();
Map<String,ReturnEdge> returnEdgeMap = new HashMap<>(); Map<String,ReturnEdge> returnEdgeMap = new HashMap<>();
Map<String,ReturnEdge> childrenEdgeMap = new HashMap<>();
Neo4jConfig neo4jConfig = new Neo4jConfig(); Neo4jConfig neo4jConfig = new Neo4jConfig();
Driver neo4jConnection = neo4jConfig.getNeo4jConnection(); Driver neo4jConnection = neo4jConfig.getNeo4jConnection();
...@@ -556,11 +557,11 @@ public class TableServiceImpl implements ITableService { ...@@ -556,11 +557,11 @@ public class TableServiceImpl implements ITableService {
} }
} }
int respossitoryCount= 0; int respossitoryCount= 0;
int respossitoryTime= 0; int respossitoryTime= 0;
Map<String,String> withRelationColumns = new HashMap<>();
long time101 = System.currentTimeMillis(); long time101 = System.currentTimeMillis();
List<Neo4jColumn> neo4jColumns = neo4jTableRepository.getColumnByTableId(tableId); List<Neo4jColumn> neo4jColumns = neo4jTableRepository.getColumnByTableId(tableId);
long time102 = System.currentTimeMillis(); long time102 = System.currentTimeMillis();
...@@ -568,7 +569,7 @@ public class TableServiceImpl implements ITableService { ...@@ -568,7 +569,7 @@ public class TableServiceImpl implements ITableService {
respossitoryCount++; respossitoryCount++;
for(Neo4jColumn neo4jColumn:neo4jColumns){ for(Neo4jColumn neo4jColumn:neo4jColumns){
String currentColumnId = neo4jColumn.getMetadataId(); String currentColumnId = neo4jColumn.getMetadataId();
withRelationColumns.put(currentColumnId,"");
String targetColumncypher = "match (m:Neo4jColumn{metadataId:\""+currentColumnId+"\"})-[r1:流向]->(n1)-[r0:TempRelation*0..]->(m2)-[r:流向]->(m1) return m1"; String targetColumncypher = "match (m:Neo4jColumn{metadataId:\""+currentColumnId+"\"})-[r1:流向]->(n1)-[r0:TempRelation*0..]->(m2)-[r:流向]->(m1) return m1";
long time30=System.currentTimeMillis(); long time30=System.currentTimeMillis();
...@@ -595,15 +596,17 @@ public class TableServiceImpl implements ITableService { ...@@ -595,15 +596,17 @@ public class TableServiceImpl implements ITableService {
returnNode.setCnName(metaData.getCnName()); returnNode.setCnName(metaData.getCnName());
returnNode.setType("Column"); returnNode.setType("Column");
returnNode.setDataPath(metaData.getPath()); returnNode.setDataPath(metaData.getPath());
returnNodeMap.put(returnNode.getId(),returnNode); // returnNodeMap.put(returnNode.getId(),returnNode);
withRelationColumns.put(returnNode.getId(),"");
ReturnEdge returnEdge = new ReturnEdge(); ReturnEdge returnEdge = new ReturnEdge();
String edgeId = currentColumnId+"_"+returnNode.getId(); String edgeId = currentColumnId+"_"+returnNode.getId();
returnEdge.setFromId(currentColumnId); returnEdge.setFromId(currentColumnId);
returnEdge.setToId(returnNode.getId()); returnEdge.setToId(returnNode.getId());
returnEdge.setType("To"); returnEdge.setType("To");
returnEdge.setEdgeId(edgeId); returnEdge.setEdgeId(edgeId);
returnEdgeMap.put(edgeId,returnEdge); childrenEdgeMap.put(edgeId,returnEdge);
} }
} }
} }
...@@ -634,19 +637,19 @@ public class TableServiceImpl implements ITableService { ...@@ -634,19 +637,19 @@ public class TableServiceImpl implements ITableService {
returnNode.setType("Column"); returnNode.setType("Column");
returnNodeMap.put(returnNode.getId(),returnNode); returnNodeMap.put(returnNode.getId(),returnNode);
withRelationColumns.put(returnNode.getId(),"");
ReturnEdge returnEdge = new ReturnEdge(); ReturnEdge returnEdge = new ReturnEdge();
String edgeId =returnNode.getId() +"_"+currentColumnId; String edgeId =returnNode.getId() +"_"+currentColumnId;
returnEdge.setFromId(returnNode.getId() ); returnEdge.setFromId(returnNode.getId() );
returnEdge.setToId(currentColumnId); returnEdge.setToId(currentColumnId);
returnEdge.setType("To"); returnEdge.setType("To");
returnEdge.setEdgeId(edgeId); returnEdge.setEdgeId(edgeId);
returnEdgeMap.put(edgeId,returnEdge); childrenEdgeMap.put(edgeId,returnEdge);
} }
} }
} }
} }
Map<String,ReturnNode> noRelationColumns = new HashMap<>();
for(Object obj: tableIdMap.keySet()){ for(Object obj: tableIdMap.keySet()){
String currentTableId = (String)obj; String currentTableId = (String)obj;
...@@ -656,6 +659,10 @@ public class TableServiceImpl implements ITableService { ...@@ -656,6 +659,10 @@ public class TableServiceImpl implements ITableService {
StatementResult table2CoumnResult = session.run(table2CoumnCypher); StatementResult table2CoumnResult = session.run(table2CoumnCypher);
long time104 = System.currentTimeMillis(); long time104 = System.currentTimeMillis();
runCypherTime += (time104 - time103); runCypherTime += (time104 - time103);
ReturnNode currentTableNode = returnNodeMap.get(currentTableId);
while(table2CoumnResult.hasNext()){ while(table2CoumnResult.hasNext()){
Record record = table2CoumnResult.next(); Record record = table2CoumnResult.next();
List<Value> values = record.values(); List<Value> values = record.values();
...@@ -671,24 +678,24 @@ public class TableServiceImpl implements ITableService { ...@@ -671,24 +678,24 @@ public class TableServiceImpl implements ITableService {
} }
String columnId = metaData.getMetadataId(); String columnId = metaData.getMetadataId();
if(!returnNodeMap.containsKey(columnId)){ ReturnNode returnNode = new ReturnNode();
ReturnNode returnNode = new ReturnNode(); returnNode.setId(metaData.getMetadataId());
returnNode.setId(metaData.getMetadataId()); returnNode.setName(metaData.getName());
returnNode.setName(metaData.getName()); returnNode.setCnName(metaData.getCnName());
returnNode.setCnName(metaData.getCnName()); returnNode.setDataPath(metaData.getPath());
returnNode.setDataPath(metaData.getPath()); if(!withRelationColumns.containsKey(columnId)){
returnNode.setDataPath("noRelation"); returnNode.setDataPath("noRelation");
returnNode.setType("Column");
noRelationColumns.put(columnId ,returnNode);
} }
returnNode.setType("Column");
ReturnEdge returnEdge = new ReturnEdge(); currentTableNode.getChildren().add(returnNode);
String edgeId = currentTableId+"_"+columnId;
returnEdge.setEdgeId(edgeId); // ReturnEdge returnEdge = new ReturnEdge();
returnEdge.setFromId(currentTableId); // String edgeId = currentTableId+"_"+columnId;
returnEdge.setToId(columnId); // returnEdge.setEdgeId(edgeId);
returnEdge.setType("Composition"); // returnEdge.setFromId(currentTableId);
returnEdgeMap.put(edgeId,returnEdge); // returnEdge.setToId(columnId);
// returnEdge.setType("Composition");
// returnEdgeMap.put(edgeId,returnEdge);
} }
} }
} }
...@@ -698,9 +705,9 @@ public class TableServiceImpl implements ITableService { ...@@ -698,9 +705,9 @@ public class TableServiceImpl implements ITableService {
ReturnNode returnNode = returnNodeMap.get(obj); ReturnNode returnNode = returnNodeMap.get(obj);
returnReslult.getNodes().add(returnNode); returnReslult.getNodes().add(returnNode);
} }
for(Object obj:noRelationColumns.keySet()){ for(Object obj:childrenEdgeMap.keySet()){
ReturnNode returnNode = noRelationColumns.get(obj); ReturnEdge returnEdge = childrenEdgeMap.get(obj);
returnReslult.getNodes().add(returnNode); returnReslult.getChildrenEdges().add(returnEdge);
} }
for(Object obj:returnEdgeMap.keySet()){ for(Object obj:returnEdgeMap.keySet()){
ReturnEdge returnEdge = returnEdgeMap.get(obj); ReturnEdge returnEdge = returnEdgeMap.get(obj);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment