diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/ArithmeticQueryColumn.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/ArithmeticQueryColumn.java index c5780e64..5eb00c9b 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/ArithmeticQueryColumn.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/ArithmeticQueryColumn.java @@ -96,7 +96,7 @@ public class ArithmeticQueryColumn extends QueryColumn { sql.append(arithmeticInfos.get(i).toSql(queryTables, dialect, i)); } if (StringUtil.isNotBlank(alias)) { - return WrapperUtil.withAlias(sql.toString(), dialect.wrap(alias)); + return WrapperUtil.withAlias(sql.toString(), dialect.wrap(alias), dialect); } return sql.toString(); } @@ -141,7 +141,7 @@ public class ArithmeticQueryColumn extends QueryColumn { } else { valueSql = String.valueOf(value); } - return index == 0 ? valueSql : symbol + valueSql; + return index == 0 ? valueSql : symbol + valueSql; } @Override diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/CaseQueryColumn.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/CaseQueryColumn.java index 4a9743d5..1bd24d32 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/CaseQueryColumn.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/CaseQueryColumn.java @@ -44,7 +44,7 @@ public class CaseQueryColumn extends QueryColumn implements HasParamsColumn { String toSelectSql(List queryTables, IDialect dialect) { String sql = buildSql(queryTables, dialect); if (StringUtil.isNotBlank(alias)) { - return WrapperUtil.withAlias(sql, dialect.wrap(alias)); + return WrapperUtil.withAlias(sql, dialect.wrap(alias), dialect); } return sql; } diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/CaseSearchQueryColumn.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/CaseSearchQueryColumn.java index c8d53f7d..96946703 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/CaseSearchQueryColumn.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/CaseSearchQueryColumn.java @@ -37,7 +37,7 @@ public class CaseSearchQueryColumn extends QueryColumn implements HasParamsColum String toSelectSql(List queryTables, IDialect dialect) { String sql = buildSql(queryTables, dialect); if (StringUtil.isNotBlank(alias)) { - return WrapperUtil.withAlias(sql, dialect.wrap(alias)); + return WrapperUtil.withAlias(sql, dialect.wrap(alias), dialect); } return sql; } diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/FunctionQueryColumn.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/FunctionQueryColumn.java index 50f606e1..22bdba2b 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/FunctionQueryColumn.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/FunctionQueryColumn.java @@ -78,7 +78,7 @@ public class FunctionQueryColumn extends QueryColumn implements HasParamsColumn if (StringUtil.isBlank(alias)) { return fnName + WrapperUtil.withBracket(sql); } - return fnName + WrapperUtil.withAlias(sql, dialect.wrap(alias)); + return fnName + WrapperUtil.withAlias(sql, dialect.wrap(alias), dialect); } @Override diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/SelectQueryColumn.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/SelectQueryColumn.java index 0256bede..b10f48b4 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/SelectQueryColumn.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/SelectQueryColumn.java @@ -45,7 +45,7 @@ public class SelectQueryColumn extends QueryColumn implements HasParamsColumn { String toSelectSql(List queryTables, IDialect dialect) { String selectSql = dialect.forSelectByQuery(queryWrapper); if (StringUtil.isNotBlank(selectSql) && StringUtil.isNotBlank(alias)) { - selectSql = WrapperUtil.withAlias(selectSql, dialect.wrap(alias)); + selectSql = WrapperUtil.withAlias(selectSql, dialect.wrap(alias), dialect); } return selectSql; } 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 fb735c57..565c3b68 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 @@ -49,7 +49,7 @@ public class SelectQueryTable extends QueryTable { public String toSql(IDialect dialect) { String sql = dialect.buildSelectSql(queryWrapper); if (StringUtil.isNotBlank(alias)) { - return WrapperUtil.withAlias(sql, dialect.wrap(alias)); + return WrapperUtil.withAlias(sql, dialect.wrap(alias), dialect); } else { return WrapperUtil.withBracket(sql); } diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/StringFunctionQueryColumn.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/StringFunctionQueryColumn.java index 25763d40..582bafc1 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/StringFunctionQueryColumn.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/StringFunctionQueryColumn.java @@ -65,7 +65,7 @@ public class StringFunctionQueryColumn extends QueryColumn { if (StringUtil.isBlank(alias)) { return fnName + WrapperUtil.withBracket(sql); } - return fnName + WrapperUtil.withAlias(sql, dialect.wrap(alias)); + return fnName + WrapperUtil.withAlias(sql, dialect.wrap(alias), dialect); } @Override diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/WrapperUtil.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/WrapperUtil.java index 8b56340d..b1a91d24 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/WrapperUtil.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/WrapperUtil.java @@ -20,6 +20,7 @@ import com.mybatisflex.core.FlexConsts; import com.mybatisflex.core.constant.SqlConsts; import com.mybatisflex.core.dialect.DialectFactory; import com.mybatisflex.core.dialect.IDialect; +import com.mybatisflex.core.dialect.impl.OracleDialect; import com.mybatisflex.core.util.ClassUtil; import com.mybatisflex.core.util.EnumWrapper; import com.mybatisflex.core.util.StringUtil; @@ -145,11 +146,15 @@ class WrapperUtil { return SqlConsts.BRACKET_LEFT + sql + SqlConsts.BRACKET_RIGHT; } - static String withAlias(String sql, String alias) { - return SqlConsts.BRACKET_LEFT + sql + SqlConsts.BRACKET_RIGHT + SqlConsts.AS + alias; + static String withAlias(String sql, String alias, IDialect dialect) { + return SqlConsts.BRACKET_LEFT + sql + SqlConsts.BRACKET_RIGHT + getAsKeyWord(dialect) + alias; } static String buildAlias(String alias, IDialect dialect) { - return StringUtil.isBlank(alias) ? SqlConsts.EMPTY : SqlConsts.AS + dialect.wrap(alias); + return StringUtil.isBlank(alias) ? SqlConsts.EMPTY : getAsKeyWord(dialect) + dialect.wrap(alias); + } + + private static String getAsKeyWord(IDialect dialect){ + return dialect instanceof OracleDialect ? SqlConsts.BLANK : SqlConsts.AS; } }