diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/dialect/IDialect.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/dialect/IDialect.java index 1d4e40d1..98c9eef8 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/dialect/IDialect.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/dialect/IDialect.java @@ -31,8 +31,8 @@ public interface IDialect { String wrapColumnAlias(String keyword); - default String getRealTable(String table) { - return TableManager.getRealTable(table); + default String getRealTable(String table, OperateType operateType) { + return TableManager.getRealTable(table,operateType); } default String getRealSchema(String schema, String table) { diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/dialect/OperateType.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/dialect/OperateType.java index ee19f331..94da14eb 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/dialect/OperateType.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/dialect/OperateType.java @@ -18,5 +18,8 @@ public enum OperateType { * 删除 */ DELETE, - ; + /** + * 增加 + */ + INSERT; } diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/dialect/impl/CommonsDialectImpl.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/dialect/impl/CommonsDialectImpl.java index 3001a3bf..6b15da79 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/dialect/impl/CommonsDialectImpl.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/dialect/impl/CommonsDialectImpl.java @@ -140,7 +140,7 @@ public class CommonsDialectImpl implements IDialect { index++; } - String table = getRealTable(tableName); + String table = getRealTable(tableName,OperateType.INSERT); StringBuilder sql = new StringBuilder(); sql.append(INSERT_INTO); if (StringUtil.isNotBlank(schema)) { @@ -176,7 +176,7 @@ public class CommonsDialectImpl implements IDialect { } } - String table = getRealTable(tableName); + String table = getRealTable(tableName,OperateType.INSERT); StringBuilder sql = new StringBuilder(); sql.append(INSERT_INTO); if (StringUtil.isNotBlank(schema)) { @@ -193,7 +193,7 @@ public class CommonsDialectImpl implements IDialect { @Override public String forDeleteById(String schema, String tableName, String[] primaryKeys) { - String table = getRealTable(tableName); + String table = getRealTable(tableName,OperateType.DELETE); StringBuilder sql = new StringBuilder(); sql.append(DELETE_FROM); if (StringUtil.isNotBlank(schema)) { @@ -214,7 +214,7 @@ public class CommonsDialectImpl implements IDialect { @Override public String forDeleteBatchByIds(String schema, String tableName, String[] primaryKeys, Object[] ids) { - String table = getRealTable(tableName); + String table = getRealTable(tableName,OperateType.DELETE); StringBuilder sql = new StringBuilder(); sql.append(DELETE_FROM); if (StringUtil.isNotBlank(schema)) { @@ -261,7 +261,7 @@ public class CommonsDialectImpl implements IDialect { @Override public String forUpdateById(String schema, String tableName, Row row) { - String table = getRealTable(tableName); + String table = getRealTable(tableName,OperateType.UPDATE); StringBuilder sql = new StringBuilder(); Set modifyAttrs = RowCPI.getModifyAttrs(row); Map rawValueMap = RowCPI.getRawValueMap(row); @@ -317,7 +317,7 @@ public class CommonsDialectImpl implements IDialect { //fix: support schema QueryTable queryTable = queryTables.get(0); - sqlBuilder.append(UPDATE).append(queryTable.toSql(this)).append(SET); + sqlBuilder.append(UPDATE).append(queryTable.toSql(this,OperateType.UPDATE)).append(SET); int index = 0; for (String modifyAttr : modifyAttrs) { if (index > 0) { @@ -335,7 +335,7 @@ public class CommonsDialectImpl implements IDialect { index++; } - buildJoinSql(sqlBuilder, queryWrapper, queryTables); + buildJoinSql(sqlBuilder, queryWrapper, queryTables,OperateType.UPDATE); buildWhereSql(sqlBuilder, queryWrapper, queryTables, false); buildGroupBySql(sqlBuilder, queryWrapper, queryTables); buildHavingSql(sqlBuilder, queryWrapper, queryTables); @@ -367,7 +367,7 @@ public class CommonsDialectImpl implements IDialect { @Override public String forSelectOneById(String schema, String tableName, String[] primaryKeys, Object[] primaryValues) { - String table = getRealTable(tableName); + String table = getRealTable(tableName,OperateType.SELECT); StringBuilder sql = new StringBuilder(SELECT_ALL_FROM); if (StringUtil.isNotBlank(schema)) { sql.append(wrap(getRealSchema(schema, table))).append(REFERENCE); @@ -438,9 +438,9 @@ public class CommonsDialectImpl implements IDialect { buildSelectColumnSql(sqlBuilder, allTables, selectColumns, CPI.getHint(queryWrapper)); - sqlBuilder.append(FROM).append(StringUtil.join(DELIMITER, queryTables, queryTable -> queryTable.toSql(this))); + sqlBuilder.append(FROM).append(StringUtil.join(DELIMITER, queryTables, queryTable -> queryTable.toSql(this,OperateType.SELECT))); - buildJoinSql(sqlBuilder, queryWrapper, allTables); + buildJoinSql(sqlBuilder, queryWrapper, allTables,OperateType.SELECT); buildWhereSql(sqlBuilder, queryWrapper, allTables, true); buildGroupBySql(sqlBuilder, queryWrapper, allTables); buildHavingSql(sqlBuilder, queryWrapper, allTables); @@ -474,7 +474,7 @@ public class CommonsDialectImpl implements IDialect { public String buildNoSelectSql(QueryWrapper queryWrapper) { StringBuilder sqlBuilder = new StringBuilder(); - buildJoinSql(sqlBuilder, queryWrapper, Collections.EMPTY_LIST); + buildJoinSql(sqlBuilder, queryWrapper, Collections.EMPTY_LIST,OperateType.SELECT); buildWhereSql(sqlBuilder, queryWrapper, Collections.EMPTY_LIST, true); buildGroupBySql(sqlBuilder, queryWrapper, Collections.EMPTY_LIST); buildHavingSql(sqlBuilder, queryWrapper, Collections.EMPTY_LIST); @@ -546,17 +546,17 @@ public class CommonsDialectImpl implements IDialect { throw new IllegalArgumentException("Delete with join sql must has 1 table only. but current has " + queryTables.size()); } QueryTable queryTable = queryTables.get(0); - String table = getRealTable(queryTable.getName()); + String table = getRealTable(queryTable.getName(),OperateType.DELETE); if (StringUtil.isNotBlank(queryTable.getSchema())) { sqlBuilder.append(wrap(getRealSchema(queryTable.getSchema(), table))).append(REFERENCE); } - sqlBuilder.append(BLANK).append(wrap(getRealTable(table))); + sqlBuilder.append(BLANK).append(wrap(getRealTable(table,OperateType.DELETE))); } - sqlBuilder.append(FROM).append(StringUtil.join(DELIMITER, queryTables, queryTable -> queryTable.toSql(this))); + sqlBuilder.append(FROM).append(StringUtil.join(DELIMITER, queryTables, queryTable -> queryTable.toSql(this,OperateType.DELETE))); - buildJoinSql(sqlBuilder, queryWrapper, allTables); + buildJoinSql(sqlBuilder, queryWrapper, allTables,OperateType.DELETE); buildWhereSql(sqlBuilder, queryWrapper, allTables, false); buildGroupBySql(sqlBuilder, queryWrapper, allTables); buildHavingSql(sqlBuilder, queryWrapper, allTables); @@ -591,7 +591,7 @@ public class CommonsDialectImpl implements IDialect { @Override public String forInsertEntity(TableInfo tableInfo, Object entity, boolean ignoreNulls) { StringBuilder sql = new StringBuilder(); - sql.append(INSERT_INTO).append(tableInfo.getWrapSchemaAndTableName(this)); + sql.append(INSERT_INTO).append(tableInfo.getWrapSchemaAndTableName(this,OperateType.INSERT)); String[] insertColumns = tableInfo.obtainInsertColumns(entity, ignoreNulls); Map onInsertColumns = tableInfo.getOnInsertColumns(); @@ -623,7 +623,7 @@ public class CommonsDialectImpl implements IDialect { public String forInsertEntityWithPk(TableInfo tableInfo, Object entity, boolean ignoreNulls) { StringBuilder sql = new StringBuilder(); - sql.append(INSERT_INTO).append(tableInfo.getWrapSchemaAndTableName(this)); + sql.append(INSERT_INTO).append(tableInfo.getWrapSchemaAndTableName(this,OperateType.INSERT)); String[] insertColumns = tableInfo.obtainInsertColumnsWithPk(entity, ignoreNulls); Map onInsertColumns = tableInfo.getOnInsertColumns(); @@ -650,7 +650,7 @@ public class CommonsDialectImpl implements IDialect { @Override public String forInsertEntityBatch(TableInfo tableInfo, List entities) { StringBuilder sql = new StringBuilder(); - sql.append(INSERT_INTO).append(tableInfo.getWrapSchemaAndTableName(this)); + sql.append(INSERT_INTO).append(tableInfo.getWrapSchemaAndTableName(this,OperateType.INSERT)); String[] insertColumns = tableInfo.obtainInsertColumns(null, false); String[] warpedInsertColumns = new String[insertColumns.length]; for (int i = 0; i < insertColumns.length; i++) { @@ -696,7 +696,7 @@ public class CommonsDialectImpl implements IDialect { StringBuilder sql = new StringBuilder(); String[] primaryKeys = tableInfo.getPrimaryColumns(); - sql.append(UPDATE).append(tableInfo.getWrapSchemaAndTableName(this)); + sql.append(UPDATE).append(tableInfo.getWrapSchemaAndTableName(this,OperateType.UPDATE)); sql.append(SET).append(buildLogicDeletedSet(logicDeleteColumn, tableInfo)); sql.append(WHERE); for (int i = 0; i < primaryKeys.length; i++) { @@ -734,7 +734,7 @@ public class CommonsDialectImpl implements IDialect { StringBuilder sql = new StringBuilder(); sql.append(UPDATE); - sql.append(tableInfo.getWrapSchemaAndTableName(this)); + sql.append(tableInfo.getWrapSchemaAndTableName(this,OperateType.UPDATE)); sql.append(SET).append(buildLogicDeletedSet(logicDeleteColumn, tableInfo)); sql.append(WHERE); sql.append(BRACKET_LEFT); @@ -793,11 +793,11 @@ public class CommonsDialectImpl implements IDialect { //ignore selectColumns StringBuilder sqlBuilder = new StringBuilder(UPDATE).append(forHint(CPI.getHint(queryWrapper))); - sqlBuilder.append(tableInfo.getWrapSchemaAndTableName(this)); + sqlBuilder.append(tableInfo.getWrapSchemaAndTableName(this,OperateType.DELETE)); sqlBuilder.append(SET).append(buildLogicDeletedSet(logicDeleteColumn, tableInfo)); - buildJoinSql(sqlBuilder, queryWrapper, allTables); + buildJoinSql(sqlBuilder, queryWrapper, allTables,OperateType.DELETE); buildWhereSql(sqlBuilder, queryWrapper, allTables, false); buildGroupBySql(sqlBuilder, queryWrapper, allTables); buildHavingSql(sqlBuilder, queryWrapper, allTables); @@ -818,7 +818,7 @@ public class CommonsDialectImpl implements IDialect { Map rawValueMap = tableInfo.obtainUpdateRawValueMap(entity); String[] primaryKeys = tableInfo.getPrimaryColumns(); - sql.append(UPDATE).append(tableInfo.getWrapSchemaAndTableName(this)).append(SET); + sql.append(UPDATE).append(tableInfo.getWrapSchemaAndTableName(this,OperateType.UPDATE)).append(SET); StringJoiner stringJoiner = new StringJoiner(DELIMITER); @@ -884,10 +884,10 @@ public class CommonsDialectImpl implements IDialect { Map rawValueMap = tableInfo.obtainUpdateRawValueMap(entity); sqlBuilder.append(UPDATE).append(forHint(CPI.getHint(queryWrapper))); - sqlBuilder.append(tableInfo.getWrapSchemaAndTableName(this)); + sqlBuilder.append(tableInfo.getWrapSchemaAndTableName(this,OperateType.UPDATE)); List queryTables = CPI.getQueryTables(queryWrapper); - buildJoinSql(sqlBuilder, queryWrapper, queryTables); + buildJoinSql(sqlBuilder, queryWrapper, queryTables,OperateType.UPDATE); sqlBuilder.append(SET); @@ -946,7 +946,7 @@ public class CommonsDialectImpl implements IDialect { public String forSelectOneEntityById(TableInfo tableInfo) { StringBuilder sql = new StringBuilder(); buildSelectColumnSql(sql, null, null, null); - sql.append(FROM).append(tableInfo.getWrapSchemaAndTableName(this)); + sql.append(FROM).append(tableInfo.getWrapSchemaAndTableName(this,OperateType.SELECT)); sql.append(WHERE); String[] pKeys = tableInfo.getPrimaryColumns(); for (int i = 0; i < pKeys.length; i++) { @@ -974,7 +974,7 @@ public class CommonsDialectImpl implements IDialect { public String forSelectEntityListByIds(TableInfo tableInfo, Object[] primaryValues) { StringBuilder sql = new StringBuilder(); buildSelectColumnSql(sql, null, tableInfo.getDefaultQueryColumn(), null); - sql.append(FROM).append(tableInfo.getWrapSchemaAndTableName(this)); + sql.append(FROM).append(tableInfo.getWrapSchemaAndTableName(this,OperateType.SELECT)); sql.append(WHERE); String[] primaryKeys = tableInfo.getPrimaryColumns(); @@ -1026,7 +1026,7 @@ public class CommonsDialectImpl implements IDialect { } - protected boolean buildJoinSql(StringBuilder sqlBuilder, QueryWrapper queryWrapper, List queryTables) { + protected boolean buildJoinSql(StringBuilder sqlBuilder, QueryWrapper queryWrapper, List queryTables, OperateType operateType) { List joins = CPI.getJoins(queryWrapper); boolean joinSuccess = false; if (joins != null && !joins.isEmpty()) { @@ -1034,7 +1034,7 @@ public class CommonsDialectImpl implements IDialect { if (!join.checkEffective()) { continue; } - sqlBuilder.append(join.toSql(queryTables, this)); + sqlBuilder.append(join.toSql(queryTables, this,operateType)); joinSuccess = true; } } diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/dialect/impl/OracleDialect.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/dialect/impl/OracleDialect.java index 517f75c0..7f8f54c2 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/dialect/impl/OracleDialect.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/dialect/impl/OracleDialect.java @@ -18,6 +18,7 @@ package com.mybatisflex.core.dialect.impl; import com.mybatisflex.core.constant.SqlConsts; import com.mybatisflex.core.dialect.KeywordWrap; import com.mybatisflex.core.dialect.LimitOffsetProcessor; +import com.mybatisflex.core.dialect.OperateType; import com.mybatisflex.core.row.Row; import com.mybatisflex.core.row.RowCPI; import com.mybatisflex.core.table.TableInfo; @@ -121,7 +122,7 @@ public class OracleDialect extends CommonsDialectImpl { Map onInsertColumns = tableInfo.getOnInsertColumns(); for (int i = 0; i < entities.size(); i++) { - sql.append(INTO).append(tableInfo.getWrapSchemaAndTableName(this)); + sql.append(INTO).append(tableInfo.getWrapSchemaAndTableName(this, OperateType.INSERT)); sql.append(BLANK).append(BRACKET_LEFT).append(StringUtil.join(DELIMITER, warpedInsertColumns)).append(BRACKET_RIGHT); sql.append(VALUES); @@ -168,7 +169,7 @@ public class OracleDialect extends CommonsDialectImpl { StringBuilder sql = new StringBuilder(); sql.append(INSERT_ALL); - String table = getRealTable(tableName); + String table = getRealTable(tableName,OperateType.INSERT); String tableNameWrap = StringUtil.isNotBlank(schema) ? wrap(getRealSchema(schema,table)) + REFERENCE + wrap(table) : wrap(table); diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/Join.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/Join.java index c1571deb..469869ff 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/Join.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/Join.java @@ -17,6 +17,7 @@ package com.mybatisflex.core.query; import com.mybatisflex.core.constant.SqlConsts; import com.mybatisflex.core.dialect.IDialect; +import com.mybatisflex.core.dialect.OperateType; import com.mybatisflex.core.exception.FlexExceptions; import com.mybatisflex.core.util.ObjectUtil; @@ -99,10 +100,10 @@ public class Join implements CloneSupport { this.effective = fn.get(); } - public String toSql(List queryTables, IDialect dialect) { + public String toSql(List queryTables, IDialect dialect, OperateType operateType) { //left join, right join, inner join ... StringBuilder sql = new StringBuilder(type); - sql.append(queryTable.toSql(dialect)); + sql.append(queryTable.toSql(dialect,operateType)); //left join xxx as xxx2 on xxx2.id = xxx3.other List newQueryTables = new ArrayList<>(queryTables); diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/QueryColumn.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/QueryColumn.java index 464b83eb..adc3d7d4 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/QueryColumn.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/QueryColumn.java @@ -19,6 +19,7 @@ package com.mybatisflex.core.query; import com.mybatisflex.core.constant.SqlConsts; import com.mybatisflex.core.constant.SqlOperator; import com.mybatisflex.core.dialect.IDialect; +import com.mybatisflex.core.dialect.OperateType; import com.mybatisflex.core.exception.FlexExceptions; import com.mybatisflex.core.util.CollectionUtil; import com.mybatisflex.core.util.LambdaGetter; @@ -977,11 +978,11 @@ public class QueryColumn implements CloneSupport, Conditional { return FlexConsts.EMPTY_ARRAY; } - public String toSql(IDialect dialect) { + public String toSql(IDialect dialect, OperateType operateType) { String sql; if (StringUtil.isNotBlank(schema)) { - String table = dialect.getRealTable(name); + String table = dialect.getRealTable(name,operateType); sql = dialect.wrap(dialect.getRealSchema(schema, table)) + "." + dialect.wrap(table) + WrapperUtil.buildAlias(alias, dialect); } else { - sql = dialect.wrap(dialect.getRealTable(name)) + WrapperUtil.buildAlias(alias, dialect); + sql = dialect.wrap(dialect.getRealTable(name,operateType)) + WrapperUtil.buildAlias(alias, dialect); } return sql; } diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/RawQueryTable.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/RawQueryTable.java index 3cf95cb7..f99d49f7 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/RawQueryTable.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/RawQueryTable.java @@ -17,6 +17,7 @@ package com.mybatisflex.core.query; import com.mybatisflex.core.dialect.IDialect; +import com.mybatisflex.core.dialect.OperateType; import com.mybatisflex.core.util.StringUtil; import java.util.Objects; @@ -36,7 +37,7 @@ public class RawQueryTable extends QueryTable { } @Override - public String toSql(IDialect dialect) { + public String toSql(IDialect dialect, OperateType operateType) { return this.content + WrapperUtil.buildAlias(alias, dialect); } diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/SelectQueryTable.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/SelectQueryTable.java index 4d91ace7..8947af8f 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/SelectQueryTable.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/SelectQueryTable.java @@ -16,6 +16,7 @@ package com.mybatisflex.core.query; import com.mybatisflex.core.dialect.IDialect; +import com.mybatisflex.core.dialect.OperateType; import com.mybatisflex.core.util.StringUtil; /** @@ -46,7 +47,7 @@ public class SelectQueryTable extends QueryTable { } @Override - public String toSql(IDialect dialect) { + public String toSql(IDialect dialect, OperateType operateType) { String sql = dialect.buildSelectSql(queryWrapper); if (StringUtil.isNotBlank(alias)) { return WrapperUtil.withAlias(sql, alias, dialect); diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/table/DynamicTableProcessor.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/table/DynamicTableProcessor.java index 00c50c75..8d10b4f8 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/table/DynamicTableProcessor.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/table/DynamicTableProcessor.java @@ -15,8 +15,10 @@ */ package com.mybatisflex.core.table; +import com.mybatisflex.core.dialect.OperateType; + public interface DynamicTableProcessor { - String process(String tableName); + String process(String tableName, OperateType operateType); } diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/table/TableInfo.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/table/TableInfo.java index 301ab4bf..217f1a87 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/table/TableInfo.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/table/TableInfo.java @@ -21,6 +21,7 @@ import com.mybatisflex.core.FlexGlobalConfig; import com.mybatisflex.core.constant.SqlConsts; import com.mybatisflex.core.constant.SqlOperator; import com.mybatisflex.core.dialect.IDialect; +import com.mybatisflex.core.dialect.OperateType; import com.mybatisflex.core.exception.FlexExceptions; import com.mybatisflex.core.exception.locale.LocalizedFormats; import com.mybatisflex.core.logicdelete.LogicDeleteManager; @@ -143,12 +144,12 @@ public class TableInfo { return StringUtil.buildSchemaWithTable(schema, tableName); } - public String getWrapSchemaAndTableName(IDialect dialect) { + public String getWrapSchemaAndTableName(IDialect dialect, OperateType operateType) { if (StringUtil.isNotBlank(schema)) { - String table = dialect.getRealTable(tableName); + String table = dialect.getRealTable(tableName,operateType); return dialect.wrap(dialect.getRealSchema(schema, table)) + "." + dialect.wrap(table); } else { - return dialect.wrap(dialect.getRealTable(tableName)); + return dialect.wrap(dialect.getRealTable(tableName,operateType)); } } diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/table/TableManager.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/table/TableManager.java index 49271f25..bb9808ea 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/table/TableManager.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/table/TableManager.java @@ -15,6 +15,7 @@ */ package com.mybatisflex.core.table; +import com.mybatisflex.core.dialect.OperateType; import com.mybatisflex.core.util.StringUtil; import java.util.HashMap; @@ -78,7 +79,7 @@ public class TableManager { } - public static String getRealTable(String tableName) { + public static String getRealTable(String tableName, OperateType operateType) { Map mapping = tableNameMappingTL.get(); if (mapping != null) { @@ -92,7 +93,7 @@ public class TableManager { return tableName; } - String dynamicTableName = dynamicTableProcessor.process(tableName); + String dynamicTableName = dynamicTableProcessor.process(tableName,operateType); return StringUtil.isNotBlank(dynamicTableName) ? dynamicTableName : tableName; } diff --git a/mybatis-flex-core/src/test/java/com/mybatisflex/coretest/AccountSqlTester.java b/mybatis-flex-core/src/test/java/com/mybatisflex/coretest/AccountSqlTester.java index 4dedab20..edce5f74 100644 --- a/mybatis-flex-core/src/test/java/com/mybatisflex/coretest/AccountSqlTester.java +++ b/mybatis-flex-core/src/test/java/com/mybatisflex/coretest/AccountSqlTester.java @@ -123,7 +123,7 @@ public class AccountSqlTester { .where(ACCOUNT01.ID.ge(100)) .and(ACCOUNT.SEX.eq(1)); - TableManager.setDynamicTableProcessor(tableName -> tableName + "_01"); + TableManager.setDynamicTableProcessor((tableName,operateType) -> tableName + "_01"); Assert.assertEquals("SELECT * FROM `flex`.`tb_a01_01` " + "LEFT JOIN `tb_account_01` ON `flex`.`tb_a01_01`.`id` = `tb_account_01`.`id` " + @@ -144,7 +144,7 @@ public class AccountSqlTester { .where(ACCOUNT01.ID.ge(100)) .and(ACCOUNT.SEX.eq(1)); - TableManager.setDynamicTableProcessor(original -> original + "_01"); + TableManager.setDynamicTableProcessor((original,operateType) -> original + "_01"); Assert.assertEquals("SELECT * FROM `flex`.`tb_a01_01` AS `a1` " + "LEFT JOIN `tb_account_01` ON `a1`.`id` = `tb_account_01`.`id` " +