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
1ab4c956
Commit
1ab4c956
authored
Jan 12, 2022
by
qiuchaofei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1.添加关系的属性,2 查询column,sql等模型
parent
185611fd
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
109 additions
and
28 deletions
+109
-28
MetadataRelationApplication.java
...etadata/metadataRelation/MetadataRelationApplication.java
+2
-0
RelationalGraphController.java
...etadataRelation/controller/RelationalGraphController.java
+0
-7
Neo4jColumn.java
.../metadata/metadataRelation/pojo/metadata/Neo4jColumn.java
+8
-0
Neo4jETLSql.java
.../metadata/metadataRelation/pojo/metadata/Neo4jETLSql.java
+11
-0
ReturnNode.java
...metadata/metadataRelation/pojo/returnBean/ReturnNode.java
+13
-1
Neo4jColumnRepository.java
...aRelation/respository/metadata/Neo4jColumnRepository.java
+11
-0
Neo4jETLSqlRepository.java
...aRelation/respository/metadata/Neo4jETLSqlRepository.java
+10
-0
Neo4jTableRepository.java
...taRelation/respository/metadata/Neo4jTableRepository.java
+5
-0
AsyncDataFromMongoToNeo4j.java
...a/metadataRelation/service/AsyncDataFromMongoToNeo4j.java
+23
-7
BaseRelationshipServiceImpl.java
...ataRelation/service/impl/BaseRelationshipServiceImpl.java
+3
-3
MetadataServiceImpl.java
...ta/metadataRelation/service/impl/MetadataServiceImpl.java
+0
-0
MongoDbServiceImpl.java
...ata/metadataRelation/service/impl/MongoDbServiceImpl.java
+7
-8
TableServiceImpl.java
...adata/metadataRelation/service/impl/TableServiceImpl.java
+16
-2
No files found.
src/main/java/com/keymobile/metadata/metadataRelation/MetadataRelationApplication.java
View file @
1ab4c956
...
...
@@ -6,7 +6,9 @@ import org.jasypt.encryption.StringEncryptor;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.boot.builder.SpringApplicationBuilder
;
import
org.springframework.cloud.openfeign.EnableFeignClients
;
import
org.springframework.scheduling.annotation.EnableScheduling
;
@EnableScheduling
@EnableFeignClients
@SpringBootApplication
public
class
MetadataRelationApplication
{
...
...
src/main/java/com/keymobile/metadata/metadataRelation/controller/RelationalGraphController.java
View file @
1ab4c956
...
...
@@ -47,13 +47,6 @@ public class RelationalGraphController {
@Autowired
private
TagRemoteService
tagRemoteService
;
//测试标签的接口的接口
@ApiOperation
(
tags
=
""
,
value
=
"测试标准的接口"
)
@RequestMapping
(
path
=
"/testTagService"
,
method
=
RequestMethod
.
GET
)
public
void
testTagService
(
String
metadataId
){
}
//测试标准的接口
@ApiOperation
(
tags
=
""
,
value
=
"测试标准的接口"
)
@RequestMapping
(
path
=
"/dataAssertRemoteService"
,
method
=
RequestMethod
.
GET
)
...
...
src/main/java/com/keymobile/metadata/metadataRelation/pojo/metadata/Neo4jColumn.java
0 → 100644
View file @
1ab4c956
package
com
.
keymobile
.
metadata
.
metadataRelation
.
pojo
.
metadata
;
import
com.keymobile.metadata.metadataRelation.pojo.BaseNode
;
import
org.neo4j.ogm.annotation.NodeEntity
;
@NodeEntity
(
label
=
"Neo4jColumn"
)
public
class
Neo4jColumn
extends
BaseNode
{
}
src/main/java/com/keymobile/metadata/metadataRelation/pojo/metadata/Neo4jETLSql.java
0 → 100644
View file @
1ab4c956
package
com
.
keymobile
.
metadata
.
metadataRelation
.
pojo
.
metadata
;
import
com.keymobile.metadata.metadataRelation.pojo.BaseNode
;
import
org.neo4j.ogm.annotation.NodeEntity
;
@NodeEntity
(
label
=
"Neo4jETLSql"
)
public
class
Neo4jETLSql
extends
BaseNode
{
}
src/main/java/com/keymobile/metadata/metadataRelation/pojo/returnBean/ReturnNode.java
View file @
1ab4c956
...
...
@@ -15,6 +15,19 @@ public class ReturnNode {
private
String
cnName
;
private
String
dataPath
;
private
Map
<
String
,
String
>
attributeMaps
=
new
HashMap
<>();
private
Map
<
String
,
String
>
relationMaps
=
new
HashMap
<>();
public
Map
<
String
,
String
>
getRelationMaps
()
{
return
relationMaps
;
}
public
void
setRelationMaps
(
Map
<
String
,
String
>
relationMaps
)
{
this
.
relationMaps
=
relationMaps
;
}
public
String
getDataPath
()
{
return
dataPath
;
...
...
@@ -33,7 +46,6 @@ public class ReturnNode {
this
.
attributeMaps
=
attributeMaps
;
}
Map
<
String
,
String
>
attributeMaps
=
new
HashMap
<>();
public
String
getCnName
()
{
return
cnName
;
...
...
src/main/java/com/keymobile/metadata/metadataRelation/respository/metadata/Neo4jColumnRepository.java
0 → 100644
View file @
1ab4c956
package
com
.
keymobile
.
metadata
.
metadataRelation
.
respository
.
metadata
;
import
com.keymobile.metadata.metadataRelation.pojo.metadata.Neo4jColumn
;
import
org.springframework.data.neo4j.repository.Neo4jRepository
;
import
org.springframework.stereotype.Repository
;
@Repository
public
interface
Neo4jColumnRepository
extends
Neo4jRepository
<
Neo4jColumn
,
Long
>
{
Neo4jColumn
findNeo4jColumnByMetadataId
(
String
metadataId
);
}
src/main/java/com/keymobile/metadata/metadataRelation/respository/metadata/Neo4jETLSqlRepository.java
0 → 100644
View file @
1ab4c956
package
com
.
keymobile
.
metadata
.
metadataRelation
.
respository
.
metadata
;
import
com.keymobile.metadata.metadataRelation.pojo.metadata.Neo4jETLSql
;
import
org.springframework.data.neo4j.repository.Neo4jRepository
;
import
org.springframework.stereotype.Repository
;
@Repository
public
interface
Neo4jETLSqlRepository
extends
Neo4jRepository
<
Neo4jETLSql
,
Long
>
{
Neo4jETLSql
findNeo4jETLSqlByMetadataId
(
String
metadataId
);
}
src/main/java/com/keymobile/metadata/metadataRelation/respository/metadata/Neo4jTableRepository.java
View file @
1ab4c956
...
...
@@ -19,6 +19,11 @@ public interface Neo4jTableRepository extends Neo4jRepository<Neo4jTable,Long> {
@Query
(
"match (n{metadataId:{tableId}} )-[r1:流向]->(m1)-[r:流向]->(m) return m "
)
List
<
BaseNode
>
getTargetTable
(
@Param
(
"tableId"
)
String
tableId
);
@Query
(
"match (n{metadataId:{startTable}} )<-[r1:流向]-(m1)<-[r:流向]-(m{metadataId:{entTable}}) return m1 "
)
List
<
BaseNode
>
getSourceEtlScriptBetween2Table
(
@Param
(
"startTable"
)
String
startTable
,
@Param
(
"entTable"
)
String
entTable
);
@Query
(
"match (n{metadataId:{startTable}} )-[r1:流向]->(m1)-[r:流向]->(m{metadataId:{entTable}}) return m1 "
)
List
<
BaseNode
>
getTargetEtlScriptBetween2Table
(
@Param
(
"startTable"
)
String
startTable
,
@Param
(
"entTable"
)
String
entTable
);
@Query
(
"match (n{metadataId:{tableId}} )<-[r1:流向]-(m1) <-[r:Composition]-(m) return m "
)
...
...
src/main/java/com/keymobile/metadata/metadataRelation/service/AsyncDataFromMongoToNeo4j.java
View file @
1ab4c956
package
com
.
keymobile
.
metadata
.
metadataRelation
.
service
;
import
com.keymobile.metadata.metadataRelation.controller.MetaDataController
;
import
com.keymobile.metadata.metadataRelation.pojo.mongo.MongoData
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.jdbc.core.JdbcTemplate
;
import
org.springframework.jdbc.core.RowMapper
;
import
org.springframework.scheduling.annotation.Async
;
import
org.springframework.scheduling.annotation.AsyncConfigurer
;
import
org.springframework.scheduling.annotation.EnableAsync
;
import
org.springframework.scheduling.
concurrent.ThreadPoolTaskExecutor
;
import
org.springframework.scheduling.
annotation.Scheduled
;
import
org.springframework.stereotype.Service
;
import
java.lang.reflect.Method
;
import
java.sql.ResultSet
;
import
java.sql.SQLException
;
import
java.util.List
;
import
java.util.concurrent.Executor
;
@Service
@EnableAsync
...
...
@@ -32,6 +26,28 @@ public class AsyncDataFromMongoToNeo4j {
@Autowired
private
JdbcTemplate
jdbcTemplate
;
//定时同步数据,
//查找所有的环境,
@Scheduled
(
cron
=
"0 0 1 * * ?"
)
//每天凌晨1点运行
public
void
executeFileSyncTask
()
{
String
sql
=
"select domain_id, domain_name from auth_domain "
;
List
<
MongoData
>
scopeList
=
jdbcTemplate
.
query
(
sql
,
new
RowMapper
<
MongoData
>()
{
@Override
public
MongoData
mapRow
(
ResultSet
resultSet
,
int
i
)
throws
SQLException
{
MongoData
user
=
new
MongoData
();
user
.
set_id
(
resultSet
.
getString
(
"domain_id"
));
user
.
setName
(
resultSet
.
getString
(
"domain_name"
));
user
.
setCnName
(
resultSet
.
getString
(
"domain_name"
));
user
.
set_class
(
"Scope"
);
return
user
;
}
});
for
(
MongoData
scope:
scopeList
){
// asyncDataFromMongoToNeo4j(scope.get_id());
}
}
@Async
public
void
asyncDataFromMongoToNeo4j
(
String
catalogName
)
{
long
start
=
System
.
currentTimeMillis
();
...
...
src/main/java/com/keymobile/metadata/metadataRelation/service/impl/BaseRelationshipServiceImpl.java
View file @
1ab4c956
...
...
@@ -169,7 +169,7 @@ public class BaseRelationshipServiceImpl implements IBaseRelationshipService {
}
@Override
public
void
saveRelation
(
String
startId
,
String
endId
,
String
composition
)
{
public
void
saveRelation
(
String
startId
,
String
endId
,
String
relationType
)
{
Neo4jConfig
neo4jConfig
=
new
Neo4jConfig
();
Driver
neo4jConnection
=
neo4jConfig
.
getNeo4jConnection
();
Session
session
=
neo4jConnection
.
session
();
...
...
@@ -177,8 +177,8 @@ public class BaseRelationshipServiceImpl implements IBaseRelationshipService {
// (m{metadataId:"Table=1=d644b631fa8c434e928bcd1f1665b060"})
// create (n)<-[r:Composition]-(m)
// return n,m,r
String
cypher
=
" match (n{metadataId:\""
+
startId
+
"\"}),(m{metadataId:\""
+
endId
+
"\"}) merge (n)-[r:"
+
composition
+
"]->(m) return n,m,r "
;
String
cypher
=
" match (n{metadataId:\""
+
startId
+
"\"}),(m{metadataId:\""
+
endId
+
"\"}) merge (n)-[r:"
+
relationType
+
"]->(m) return n,m,r "
;
session
.
run
(
cypher
);
logger
.
info
(
"运行保存关系完成:"
+
cypher
);
//
logger.info("运行保存关系完成:" + cypher);
}
}
src/main/java/com/keymobile/metadata/metadataRelation/service/impl/MetadataServiceImpl.java
View file @
1ab4c956
This diff is collapsed.
Click to expand it.
src/main/java/com/keymobile/metadata/metadataRelation/service/impl/MongoDbServiceImpl.java
View file @
1ab4c956
...
...
@@ -10,7 +10,6 @@ import org.springframework.data.domain.Pageable;
import
org.springframework.data.mongodb.core.MongoTemplate
;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.jdbc.core.JdbcTemplate
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
...
...
@@ -36,7 +35,7 @@ public class MongoDbServiceImpl {
public
List
<
RelationMongo
>
findAllRelationByCatalog
(
String
catalogName
)
{
logger
.
info
(
"--------------------->[MongoDB find start]"
);
try
{
return
mongoTemplate
.
findAll
(
RelationMongo
.
class
,
"md_relation_"
+
catalogName
);
return
mongoTemplate
.
findAll
(
RelationMongo
.
class
,
PREFIX_MD_RELATION
+
catalogName
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
null
;
...
...
@@ -53,12 +52,12 @@ public class MongoDbServiceImpl {
*
* @return
*/
public
List
<
MongoData
>
findDatabaseByparentId
(
String
catalogName
,
String
collection
Name
)
{
logger
.
info
(
"开始从mongo获取元数据:"
+
catalog
Name
);
public
List
<
MongoData
>
findDatabaseByparentId
(
String
parentName
,
String
catalog
Name
)
{
logger
.
info
(
"开始从mongo获取元数据:"
+
parent
Name
);
try
{
Query
query
=
new
Query
();
query
.
addCriteria
(
Criteria
.
where
(
"parentId"
).
is
(
catalog
Name
));
List
<
MongoData
>
mongoDataList
=
mongoTemplate
.
find
(
query
,
MongoData
.
class
,
collection
Name
);
query
.
addCriteria
(
Criteria
.
where
(
"parentId"
).
is
(
parent
Name
));
List
<
MongoData
>
mongoDataList
=
mongoTemplate
.
find
(
query
,
MongoData
.
class
,
PREFIX_METADATA_NODE
+
catalog
Name
);
return
mongoDataList
;
}
catch
(
Exception
e
)
{
...
...
@@ -74,12 +73,12 @@ public class MongoDbServiceImpl {
*
* @return
*/
public
List
<
MongoData
>
findDataByparentId
(
String
parentId
,
String
c
ollection
Name
)
{
public
List
<
MongoData
>
findDataByparentId
(
String
parentId
,
String
c
atalog
Name
)
{
logger
.
info
(
"开始从mongo获取元数据:"
+
parentId
);
try
{
Query
query
=
new
Query
();
query
.
addCriteria
(
Criteria
.
where
(
"parentId"
).
is
(
parentId
));
List
<
MongoData
>
mongoDataList
=
mongoTemplate
.
find
(
query
,
MongoData
.
class
,
collection
Name
);
List
<
MongoData
>
mongoDataList
=
mongoTemplate
.
find
(
query
,
MongoData
.
class
,
PREFIX_METADATA_NODE
+
catalog
Name
);
return
mongoDataList
;
// mongoTemplate.findAll(MongoData.class, "md_relation_" + catalogName);
}
catch
(
Exception
e
)
{
...
...
src/main/java/com/keymobile/metadata/metadataRelation/service/impl/TableServiceImpl.java
View file @
1ab4c956
...
...
@@ -298,11 +298,19 @@ public class TableServiceImpl implements ITableService {
returnNode
.
setType
(
"Table"
);
// 获取属性
Map
<
String
,
String
>
attributeMap
=
getAttributeMap
(
metadataId
);
List
<
BaseNode
>
sourceEtlScriptBetween2TableList
=
neo4jTableRepository
.
getTargetEtlScriptBetween2Table
(
tableId
,
metadataId
);
Map
<
String
,
String
>
relationMap
=
new
HashMap
<>();
for
(
BaseNode
sourceEtlScriptBetween2Table:
sourceEtlScriptBetween2TableList
){
relationMap
.
put
(
"name"
,
sourceEtlScriptBetween2Table
.
getName
());
relationMap
.
put
(
"metadataId"
,
sourceEtlScriptBetween2Table
.
getMetadataId
());
}
returnNode
.
setAttributeMaps
(
attributeMap
);
if
(!
targetTables
.
contains
(
returnNode
)){
targetTables
.
add
(
returnNode
);
}
returnNode
.
setRelationMaps
(
relationMap
);
returnNode
.
setAttributeMaps
(
attributeMap
);
}
else
{
getTargetTable
(
metadataId
,
targetTables
);
}
...
...
@@ -318,13 +326,19 @@ public class TableServiceImpl implements ITableService {
returnNode
.
setId
(
baseNode
.
getMetadataId
());
returnNode
.
setName
(
baseNode
.
getName
());
returnNode
.
setType
(
"Table"
);
// 获取属性
Map
<
String
,
String
>
attributeMap
=
getAttributeMap
(
metadataId
);
List
<
BaseNode
>
sourceEtlScriptBetween2TableList
=
neo4jTableRepository
.
getSourceEtlScriptBetween2Table
(
tableId
,
metadataId
);
Map
<
String
,
String
>
relationMap
=
new
HashMap
<>();
for
(
BaseNode
sourceEtlScriptBetween2Table:
sourceEtlScriptBetween2TableList
){
relationMap
.
put
(
"name"
,
sourceEtlScriptBetween2Table
.
getName
());
relationMap
.
put
(
"metadataId"
,
sourceEtlScriptBetween2Table
.
getMetadataId
());
}
if
(!
sourceTables
.
contains
(
returnNode
)){
sourceTables
.
add
(
returnNode
);
}
returnNode
.
setRelationMaps
(
relationMap
);
returnNode
.
setAttributeMaps
(
attributeMap
);
}
else
{
getSourceTable
(
metadataId
,
sourceTables
);
...
...
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