mirror of
https://gitee.com/mybatis-flex/mybatis-flex.git
synced 2025-12-07 00:58:24 +08:00
!384 fix: 解决case when then别名丢失的问题
Merge pull request !384 from 丿风轻灬云淡/main
This commit is contained in:
commit
168ef02b27
@ -68,10 +68,10 @@ public class CaseQueryColumn extends QueryColumn implements HasParamsColumn {
|
||||
StringBuilder sql = new StringBuilder(SqlConsts.CASE);
|
||||
for (When when : whens) {
|
||||
sql.append(SqlConsts.WHEN).append(when.whenCondition.toSql(queryTables, dialect));
|
||||
sql.append(SqlConsts.THEN).append(WrapperUtil.buildValue(when.thenValue));
|
||||
sql.append(SqlConsts.THEN).append(WrapperUtil.buildValue(queryTables, when.thenValue));
|
||||
}
|
||||
if (elseValue != null) {
|
||||
sql.append(SqlConsts.ELSE).append(WrapperUtil.buildValue(elseValue));
|
||||
sql.append(SqlConsts.ELSE).append(WrapperUtil.buildValue(queryTables, elseValue));
|
||||
}
|
||||
sql.append(SqlConsts.END);
|
||||
return sql.toString();
|
||||
|
||||
@ -46,11 +46,11 @@ public class CaseSearchQueryColumn extends QueryColumn implements HasParamsColum
|
||||
StringBuilder sql = new StringBuilder(SqlConsts.CASE);
|
||||
sql.append(SqlConsts.BLANK).append(queryColumn.toSelectSql(queryTables, dialect));
|
||||
for (When when : whens) {
|
||||
sql.append(SqlConsts.WHEN).append(WrapperUtil.buildValue(when.searchValue));
|
||||
sql.append(SqlConsts.THEN).append(WrapperUtil.buildValue(when.thenValue));
|
||||
sql.append(SqlConsts.WHEN).append(WrapperUtil.buildValue(queryTables, when.searchValue));
|
||||
sql.append(SqlConsts.THEN).append(WrapperUtil.buildValue(queryTables, when.thenValue));
|
||||
}
|
||||
if (elseValue != null) {
|
||||
sql.append(SqlConsts.ELSE).append(WrapperUtil.buildValue(elseValue));
|
||||
sql.append(SqlConsts.ELSE).append(WrapperUtil.buildValue(queryTables, elseValue));
|
||||
}
|
||||
sql.append(SqlConsts.END);
|
||||
return sql.toString();
|
||||
|
||||
@ -130,13 +130,13 @@ class WrapperUtil {
|
||||
|
||||
}
|
||||
|
||||
static String buildValue(Object value) {
|
||||
static String buildValue(List<QueryTable> queryTables, Object value) {
|
||||
if (value instanceof Number || value instanceof Boolean) {
|
||||
return String.valueOf(value);
|
||||
} else if (value instanceof RawQueryCondition) {
|
||||
return ((RawQueryCondition) value).getContent();
|
||||
} else if (value instanceof QueryColumn) {
|
||||
return ((QueryColumn) value).toConditionSql(null, DialectFactory.getDialect());
|
||||
return ((QueryColumn) value).toConditionSql(queryTables, DialectFactory.getDialect());
|
||||
} else {
|
||||
return SqlConsts.SINGLE_QUOTE + value + SqlConsts.SINGLE_QUOTE;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user