diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/QueryTable.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/QueryTable.java index 5091a48b..a90b529e 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/QueryTable.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/QueryTable.java @@ -31,6 +31,7 @@ import java.util.Objects; */ public class QueryTable implements CloneSupport { + protected String schema; protected String name; protected String alias; 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 8947af8f..901f9c44 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 @@ -64,4 +64,8 @@ public class SelectQueryTable extends QueryTable { return clone; } + @Override + public String toString() { + return queryWrapper.toSQL(); + } } diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/table/TableDef.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/table/TableDef.java index 1a4fa819..4627c39e 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/table/TableDef.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/table/TableDef.java @@ -29,7 +29,14 @@ import java.util.function.Function; * @author 王帅 * @since 2024-03-11 */ -public abstract class TableDef extends QueryTable { +public class TableDef extends QueryTable { + + private static final Map CACHE = new ConcurrentHashMap<>(); + + @SuppressWarnings("unchecked") + protected static V getCache(String key, Function mappingFunction) { + return MapUtil.computeIfAbsent((Map) CACHE, key, mappingFunction); + } protected TableDef(String schema, String tableName) { super(schema, tableName); @@ -48,11 +55,9 @@ public abstract class TableDef extends QueryTable { return name; } - private static final Map CACHE = new ConcurrentHashMap<>(); - - @SuppressWarnings("unchecked") - protected static V getCache(String key, Function mappingFunction) { - return MapUtil.computeIfAbsent((Map) CACHE, key, mappingFunction); + public TableDef as(String alias) { + String key = getNameWithSchema() + "." + alias; + return getCache(key, k -> new TableDef(this.schema, this.name, alias)); } } diff --git a/mybatis-flex-core/src/test/java/com/mybatisflex/coretest/QueryWrapperTest.java b/mybatis-flex-core/src/test/java/com/mybatisflex/coretest/QueryWrapperTest.java index de23fb47..8fe1cff7 100644 --- a/mybatis-flex-core/src/test/java/com/mybatisflex/coretest/QueryWrapperTest.java +++ b/mybatis-flex-core/src/test/java/com/mybatisflex/coretest/QueryWrapperTest.java @@ -23,9 +23,8 @@ import com.mybatisflex.core.query.QueryWrapper; import org.junit.Assert; import org.junit.Test; -import static com.mybatisflex.core.query.QueryMethods.*; import static com.mybatisflex.coretest.table.AccountTableDef.ACCOUNT; -import static org.junit.Assert.assertEquals; +import static com.mybatisflex.core.query.QueryMethods.*; /** * Lambda 构建 SQL 测试。