diff --git a/FlySpring/edgechain-app/src/main/java/com/edgechain/lib/endpoint/impl/PostgresEndpoint.java b/FlySpring/edgechain-app/src/main/java/com/edgechain/lib/endpoint/impl/PostgresEndpoint.java index 82d1fa89c..f8549c208 100644 --- a/FlySpring/edgechain-app/src/main/java/com/edgechain/lib/endpoint/impl/PostgresEndpoint.java +++ b/FlySpring/edgechain-app/src/main/java/com/edgechain/lib/endpoint/impl/PostgresEndpoint.java @@ -60,7 +60,7 @@ public class PostgresEndpoint extends Endpoint { private PostgresLanguage postgresLanguage; - //Join Table + // Join Table private List idList; public PostgresEndpoint() {} @@ -280,6 +280,7 @@ public StringResponse insertIntoJoinTable( this.metadataTableNames = List.of(metadataTableName); return this.postgresService.insertIntoJoinTable(this).blockingGet(); } + public StringResponse batchInsertIntoJoinTable( String metadataTableName, List idList, String metadataId) { this.idList = idList; diff --git a/FlySpring/edgechain-app/src/main/java/com/edgechain/lib/index/client/impl/PostgresClient.java b/FlySpring/edgechain-app/src/main/java/com/edgechain/lib/index/client/impl/PostgresClient.java index 7a8395a1d..d7734af11 100644 --- a/FlySpring/edgechain-app/src/main/java/com/edgechain/lib/index/client/impl/PostgresClient.java +++ b/FlySpring/edgechain-app/src/main/java/com/edgechain/lib/index/client/impl/PostgresClient.java @@ -198,27 +198,26 @@ public EdgeChain insertIntoJoinTable(PostgresEndpoint postgresEn postgresEndpoint); } - public EdgeChain batchInsertIntoJoinTable(PostgresEndpoint postgresEndpoint) { - return new EdgeChain<>( - Observable.create( - emitter -> { - try { - this.metadataRepository.batchInsertIntoJoinTable( - postgresEndpoint.getTableName(), - postgresEndpoint.getMetadataTableNames().get(0), - postgresEndpoint.getIdList(), - postgresEndpoint.getMetadataId() - ); - - emitter.onNext(new StringResponse("Inserted")); - emitter.onComplete(); - - } catch (final Exception e) { - emitter.onError(e); - } - }), - postgresEndpoint); - } + public EdgeChain batchInsertIntoJoinTable(PostgresEndpoint postgresEndpoint) { + return new EdgeChain<>( + Observable.create( + emitter -> { + try { + this.metadataRepository.batchInsertIntoJoinTable( + postgresEndpoint.getTableName(), + postgresEndpoint.getMetadataTableNames().get(0), + postgresEndpoint.getIdList(), + postgresEndpoint.getMetadataId()); + + emitter.onNext(new StringResponse("Inserted")); + emitter.onComplete(); + + } catch (final Exception e) { + emitter.onError(e); + } + }), + postgresEndpoint); + } public EdgeChain> query(PostgresEndpoint postgresEndpoint) { diff --git a/FlySpring/edgechain-app/src/main/java/com/edgechain/lib/index/repositories/PostgresClientMetadataRepository.java b/FlySpring/edgechain-app/src/main/java/com/edgechain/lib/index/repositories/PostgresClientMetadataRepository.java index c3dd37f80..38bb4e456 100644 --- a/FlySpring/edgechain-app/src/main/java/com/edgechain/lib/index/repositories/PostgresClientMetadataRepository.java +++ b/FlySpring/edgechain-app/src/main/java/com/edgechain/lib/index/repositories/PostgresClientMetadataRepository.java @@ -106,24 +106,19 @@ public void insertIntoJoinTable(PostgresEndpoint postgresEndpoint) { @Transactional public void batchInsertIntoJoinTable( - String tableName, String metadataTableName, List idList, String metadataId) { + String tableName, String metadataTableName, List idList, String metadataId) { String joinTableName = tableName + "_join_" + metadataTableName; List sqlStatements = new ArrayList<>(); - for(String id: idList) { + for (String id : idList) { sqlStatements.add( - String.format( - "INSERT INTO %s (id, metadata_id) VALUES ('%s', '%s') ON CONFLICT (id) DO UPDATE SET" - + " metadata_id = EXCLUDED.metadata_id;", - joinTableName, - UUID.fromString(id), - UUID.fromString(metadataId) - ) - ); + String.format( + "INSERT INTO %s (id, metadata_id) VALUES ('%s', '%s') ON CONFLICT (id) DO UPDATE SET" + + " metadata_id = EXCLUDED.metadata_id;", + joinTableName, UUID.fromString(id), UUID.fromString(metadataId))); } jdbcTemplate.batchUpdate(sqlStatements.toArray(new String[0])); } - @Transactional(readOnly = true, propagation = Propagation.REQUIRED) public List> queryWithMetadata( String tableName, diff --git a/FlySpring/edgechain-app/src/main/java/com/edgechain/service/controllers/index/PostgresController.java b/FlySpring/edgechain-app/src/main/java/com/edgechain/service/controllers/index/PostgresController.java index 6d2f5bb71..babbd7a90 100644 --- a/FlySpring/edgechain-app/src/main/java/com/edgechain/service/controllers/index/PostgresController.java +++ b/FlySpring/edgechain-app/src/main/java/com/edgechain/service/controllers/index/PostgresController.java @@ -61,8 +61,9 @@ public Single insertIntoJoinTable( @PostMapping("/join/batch-insert") public Single batchInsertIntoJoinTable( - @RequestBody PostgresEndpoint postgresEndpoint) { - EdgeChain edgeChain = this.postgresClient.batchInsertIntoJoinTable(postgresEndpoint); + @RequestBody PostgresEndpoint postgresEndpoint) { + EdgeChain edgeChain = + this.postgresClient.batchInsertIntoJoinTable(postgresEndpoint); return edgeChain.toSingle(); }