From c04f6819cf1f1eb26b75f62dfa96cb441812475a Mon Sep 17 00:00:00 2001 From: xcore Date: Fri, 17 Nov 2023 16:37:02 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dcase=20when=E5=88=AB=E5=90=8D?= =?UTF-8?q?=E4=B8=A2=E5=A4=B1=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/mybatisflex/core/query/CaseQueryColumn.java | 4 ++-- .../com/mybatisflex/core/query/CaseSearchQueryColumn.java | 6 +++--- .../main/java/com/mybatisflex/core/query/WrapperUtil.java | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) 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 105de2d9..e0237b7e 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 @@ -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(); 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 8266a912..f6b7bbeb 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 @@ -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(); 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 2ab6dad3..2da9b47f 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 @@ -130,13 +130,13 @@ class WrapperUtil { } - static String buildValue(Object value) { + static String buildValue(List 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; }