AE86 2 年之前
父节点
当前提交
e2ee995131

+ 7 - 1
dbsyncer-connector/src/main/java/org/dbsyncer/connector/config/SqlBuilderConfig.java

@@ -8,6 +8,7 @@ import java.util.List;
 public class SqlBuilderConfig {
 
     private Database database;
+    private CommandConfig commandConfig;
     // 架构名
     private String schema;
     // 表名
@@ -21,8 +22,9 @@ public class SqlBuilderConfig {
     // 引号
     private String quotation;
 
-    public SqlBuilderConfig(Database database, String schema, String tableName, String pk, List<Field> fields, String queryFilter, String quotation) {
+    public SqlBuilderConfig(Database database, CommandConfig commandConfig, String schema, String tableName, String pk, List<Field> fields, String queryFilter, String quotation) {
         this.database = database;
+        this.commandConfig = commandConfig;
         this.schema = schema;
         this.tableName = tableName;
         this.pk = pk;
@@ -35,6 +37,10 @@ public class SqlBuilderConfig {
         return database;
     }
 
+    public CommandConfig getCommandConfig() {
+        return commandConfig;
+    }
+
     public String getSchema() {
         return schema;
     }

+ 1 - 1
dbsyncer-connector/src/main/java/org/dbsyncer/connector/database/AbstractDatabaseConnector.java

@@ -388,7 +388,7 @@ public abstract class AbstractDatabaseConnector extends AbstractConnector
             pk = findOriginalTablePrimaryKey(commandConfig, "");
         }
 
-        SqlBuilderConfig config = new SqlBuilderConfig(this, schema, tableName, pk, fields, queryFilterSQL, buildSqlWithQuotation());
+        SqlBuilderConfig config = new SqlBuilderConfig(this, commandConfig, schema, tableName, pk, fields, queryFilterSQL, buildSqlWithQuotation());
         return SqlBuilderEnum.getSqlBuilder(type).buildSql(config);
     }
 

+ 2 - 1
dbsyncer-connector/src/main/java/org/dbsyncer/connector/database/sqlbuilder/SqlBuilderQuery.java

@@ -20,7 +20,8 @@ public class SqlBuilderQuery extends AbstractSqlBuilder {
     public String buildSql(SqlBuilderConfig config) {
         // 分页语句
         Database database = config.getDatabase();
-        return database.getPageSql(new PageSql(buildQuerySql(config), config.getPk()));
+        PageSql pageSql = new PageSql(config, buildQuerySql(config), config.getPk());
+        return database.getPageSql(pageSql);
     }
 
     @Override

+ 14 - 0
dbsyncer-connector/src/main/java/org/dbsyncer/connector/model/PageSql.java

@@ -1,7 +1,11 @@
 package org.dbsyncer.connector.model;
 
+import org.dbsyncer.connector.config.SqlBuilderConfig;
+
 public class PageSql {
 
+    private SqlBuilderConfig sqlBuilderConfig;
+
     private String querySql;
 
     private String pk;
@@ -11,6 +15,16 @@ public class PageSql {
         this.pk = pk;
     }
 
+    public PageSql(SqlBuilderConfig sqlBuilderConfig, String querySql, String pk) {
+        this.sqlBuilderConfig = sqlBuilderConfig;
+        this.querySql = querySql;
+        this.pk = pk;
+    }
+
+    public SqlBuilderConfig getSqlBuilderConfig() {
+        return sqlBuilderConfig;
+    }
+
     public String getQuerySql() {
         return querySql;
     }

+ 1 - 1
dbsyncer-storage/src/main/java/org/dbsyncer/storage/support/MysqlStorageServiceImpl.java

@@ -299,7 +299,7 @@ public class MysqlStorageServiceImpl extends AbstractStorageService {
         }
 
         List<Field> fields = executor.getFieldPairs().stream().map(p -> new Field(p.columnName, p.labelName)).collect(Collectors.toList());
-        final SqlBuilderConfig config = new SqlBuilderConfig(connector, "", table, ConfigConstant.CONFIG_MODEL_ID, fields, "", "");
+        final SqlBuilderConfig config = new SqlBuilderConfig(connector, null, "", table, ConfigConstant.CONFIG_MODEL_ID, fields, "", "");
 
         String query = SqlBuilderEnum.QUERY.getSqlBuilder().buildQuerySql(config);
         String insert = SqlBuilderEnum.INSERT.getSqlBuilder().buildSql(config);