Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
N
neo4jRelation
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
qiuchaofei
neo4jRelation
Commits
5d842643
Commit
5d842643
authored
Apr 25, 2022
by
qiuchaofei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
返回节点添加属性.入口节点的关系
parent
400e2554
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
25 additions
and
37 deletions
+25
-37
TableServiceImpl.java
...adata/metadataRelation/service/impl/TableServiceImpl.java
+25
-37
No files found.
src/main/java/com/keymobile/metadata/metadataRelation/service/impl/TableServiceImpl.java
View file @
5d842643
...
...
@@ -456,6 +456,7 @@ public class TableServiceImpl implements ITableService {
long
timeStart
=
System
.
currentTimeMillis
();
Map
<
String
,
ReturnNode
>
returnNodeMap
=
new
HashMap
<>();
Map
<
String
,
ReturnEdge
>
returnEdgeMap
=
new
HashMap
<>();
Neo4jConfig
neo4jConfig
=
new
Neo4jConfig
();
Driver
neo4jConnection
=
neo4jConfig
.
getNeo4jConnection
();
Session
session
=
neo4jConnection
.
session
();
...
...
@@ -463,8 +464,19 @@ public class TableServiceImpl implements ITableService {
int
runCypherCount
=
0
;
long
runCypherTime
=
0
;
Map
<
String
,
String
>
tableIdMap
=
new
HashMap
<>();
tableIdMap
.
put
(
tableId
,
tableId
);
Neo4jTable
neo4jTable
=
neo4jTableRepository
.
findNeo4jTableByMetadataId
(
tableId
);
ReturnNode
returnTable
=
new
ReturnNode
();
if
(
neo4jTable
!=
null
){
returnTable
.
setId
(
neo4jTable
.
getMetadataId
());
returnTable
.
setName
(
neo4jTable
.
getName
());
returnTable
.
setType
(
"Table"
);
returnNodeMap
.
put
(
returnTable
.
getId
(),
returnTable
);
}
//先找出 表的前后关系,再找出表的字段,然后找出字段的前后关系,
String
targetTablecypher
=
"match (n:Neo4jTable{metadataId:\""
+
tableId
+
"\"})-[r1:流向]->(n1)-[r0:TempRelation*0..]->(m2)-[r:流向]->(m1) return m1"
;
String
sourceTablecypher
=
"match (n:Neo4jTable{metadataId:\""
+
tableId
+
"\"})<-[r1:流向]-(n1)<-[r0:TempRelation*0..]-(m2)<-[r:流向]-(m1) return m1"
;
long
time01
=
System
.
currentTimeMillis
();
...
...
@@ -472,7 +484,7 @@ public class TableServiceImpl implements ITableService {
long
time11
=
System
.
currentTimeMillis
();
runCypherTime
+=
(
time11
-
time01
);
runCypherCount
++;
// 先找出
目标
表
// 先找出
源
表
while
(
sourceTableResult
.
hasNext
()){
Record
record
=
sourceTableResult
.
next
();
List
<
Value
>
values
=
record
.
values
();
...
...
@@ -493,7 +505,7 @@ public class TableServiceImpl implements ITableService {
returnNode
.
setDataPath
(
metaData
.
getPath
());
returnNode
.
setType
(
"Table"
);
returnNodeMap
.
put
(
returnNode
.
getId
(),
returnNode
);
tableIdMap
.
put
(
returnNode
.
getId
(),
""
);
ReturnEdge
returnEdge
=
new
ReturnEdge
();
String
edgeId
=
returnNode
.
getId
()
+
"_"
+
tableId
;
returnEdge
.
setFromId
(
returnNode
.
getId
());
...
...
@@ -504,13 +516,13 @@ public class TableServiceImpl implements ITableService {
}
}
}
String
targetTablecypher
=
"match (n:Neo4jTable{metadataId:\""
+
tableId
+
"\"})-[r1:流向]->(n1)-[r0:TempRelation*0..]->(m2)-[r:流向]->(m1) return m1"
;
long
time20
=
System
.
currentTimeMillis
();
StatementResult
targetTablecResult
=
session
.
run
(
targetTablecypher
);
runCypherCount
++;
long
time21
=
System
.
currentTimeMillis
();
runCypherTime
+=
(
time21
-
time20
);
//
先
找出目标表
// 找出目标表
while
(
targetTablecResult
.
hasNext
()){
Record
record
=
targetTablecResult
.
next
();
List
<
Value
>
values
=
record
.
values
();
...
...
@@ -532,6 +544,7 @@ public class TableServiceImpl implements ITableService {
returnNode
.
setType
(
"Table"
);
returnNodeMap
.
put
(
returnNode
.
getId
(),
returnNode
);
tableIdMap
.
put
(
returnNode
.
getId
(),
""
);
ReturnEdge
returnEdge
=
new
ReturnEdge
();
String
edgeId
=
tableId
+
"_"
+
returnNode
.
getId
();
returnEdge
.
setFromId
(
tableId
);
...
...
@@ -543,6 +556,8 @@ public class TableServiceImpl implements ITableService {
}
}
int
respossitoryCount
=
0
;
int
respossitoryTime
=
0
;
...
...
@@ -551,12 +566,10 @@ public class TableServiceImpl implements ITableService {
long
time102
=
System
.
currentTimeMillis
();
respossitoryTime
+=
(
time102
-
time101
);
respossitoryCount
++;
logger
.
info
(
"d"
);
for
(
Neo4jColumn
neo4jColumn:
neo4jColumns
){
String
currentColumnId
=
neo4jColumn
.
getMetadataId
();
String
targetColumncypher
=
"match (m:Neo4jColumn{metadataId:\""
+
currentColumnId
+
"\"})-[r1:流向]->(n1)-[r0:TempRelation*0..]->(m2)-[r:流向]->(m1) return m1"
;
String
sourceColumncypher
=
"match (m:Neo4jColumn{metadataId:\""
+
currentColumnId
+
"\"})<-[r1:流向]-(n1)<-[r0:TempRelation*0..]-(m2)<-[r:流向]-(m1) return m1"
;
long
time30
=
System
.
currentTimeMillis
();
StatementResult
targetColumnResult
=
session
.
run
(
targetColumncypher
);
...
...
@@ -585,7 +598,7 @@ public class TableServiceImpl implements ITableService {
returnNodeMap
.
put
(
returnNode
.
getId
(),
returnNode
);
ReturnEdge
returnEdge
=
new
ReturnEdge
();
String
edgeId
=
table
Id
+
"_"
+
returnNode
.
getId
();
String
edgeId
=
currentColumn
Id
+
"_"
+
returnNode
.
getId
();
returnEdge
.
setFromId
(
currentColumnId
);
returnEdge
.
setToId
(
returnNode
.
getId
());
returnEdge
.
setType
(
"To"
);
...
...
@@ -594,6 +607,8 @@ public class TableServiceImpl implements ITableService {
}
}
}
String
sourceColumncypher
=
"match (m:Neo4jColumn{metadataId:\""
+
currentColumnId
+
"\"})<-[r1:流向]-(n1)<-[r0:TempRelation*0..]-(m2)<-[r:流向]-(m1) return m1"
;
long
time40
=
System
.
currentTimeMillis
();
StatementResult
sourceColumnResult
=
session
.
run
(
sourceColumncypher
);
runCypherCount
++;
...
...
@@ -605,7 +620,6 @@ public class TableServiceImpl implements ITableService {
for
(
Value
value
:
values
)
{
if
(
value
.
type
().
name
().
equals
(
"NODE"
)){
Node
node
=
value
.
asNode
();
Map
<
String
,
Object
>
stringObjectMap
=
node
.
asMap
();
MetaData
metaData
=
new
MetaData
();
Neo4jTool
.
transMap2Bean
(
stringObjectMap
,
metaData
);
...
...
@@ -621,7 +635,7 @@ public class TableServiceImpl implements ITableService {
returnNodeMap
.
put
(
returnNode
.
getId
(),
returnNode
);
ReturnEdge
returnEdge
=
new
ReturnEdge
();
String
edgeId
=
returnNode
.
getId
()
+
"_"
+
table
Id
;
String
edgeId
=
returnNode
.
getId
()
+
"_"
+
currentColumn
Id
;
returnEdge
.
setFromId
(
returnNode
.
getId
()
);
returnEdge
.
setToId
(
currentColumnId
);
returnEdge
.
setType
(
"To"
);
...
...
@@ -634,13 +648,8 @@ public class TableServiceImpl implements ITableService {
Map
<
String
,
ReturnNode
>
noRelationColumns
=
new
HashMap
<>();
for
(
Object
obj:
returnNodeMap
.
keySet
()){
for
(
Object
obj:
tableIdMap
.
keySet
()){
String
currentTableId
=
(
String
)
obj
;
if
(!
currentTableId
.
startsWith
(
"Table="
)){
continue
;
}
long
time103
=
System
.
currentTimeMillis
();
String
table2CoumnCypher
=
"match (n:Neo4jTable{metadataId:\""
+
currentTableId
+
"\"})-[r2:Composition]->(m:Neo4jColumn) return m"
;
runCypherCount
++;
...
...
@@ -683,29 +692,8 @@ public class TableServiceImpl implements ITableService {
}
}
}
// List<Neo4jColumn> currentNeo4jColumns = neo4jTableRepository.getColumnByTableId(currentTableId);
// for(Neo4jColumn currentNeo4jColumn:currentNeo4jColumns){
// String columnId = currentNeo4jColumn.getMetadataId();
// if(!returnNodeMap.containsKey(columnId)){
//
// ReturnNode returnNode = new ReturnNode();
// returnNode.setId(currentNeo4jColumn.getMetadataId());
// returnNode.setName(currentNeo4jColumn.getName());
// returnNode.setCnName(currentNeo4jColumn.getCnName());
// noRelationColumns.put(columnId ,returnNode);
// }
// ReturnEdge returnEdge = new ReturnEdge();
// String edgeId = currentTableId+"_"+columnId;
// returnEdge.setFromId(currentTableId);
// returnEdge.setToId(columnId);
// returnEdge.setType("Composition");
// returnEdgeMap.put(edgeId,returnEdge);
// }
}
long
timeStart1
=
System
.
currentTimeMillis
();
for
(
Object
obj:
returnNodeMap
.
keySet
()){
ReturnNode
returnNode
=
returnNodeMap
.
get
(
obj
);
returnReslult
.
getNodes
().
add
(
returnNode
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment