From 08c56314c02fe7fa9ebb1fe3d293dfa32eefacb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E6=B5=A9?= Date: Tue, 21 Jun 2016 16:59:36 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=85=B3=E8=81=94=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E4=B9=9F=E8=A2=AB=E6=A0=87=E8=AE=B0=E4=B8=BA=E5=88=97?= =?UTF-8?q?=E7=9A=84bug.=E6=AF=94=E5=A6=82=20creator.name,=E5=BA=94?= =?UTF-8?q?=E8=AF=A5=E8=A7=A3=E6=9E=90=E4=B8=BAcreate."name".?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mybatis/builder/DefaultSqlParamBuilder.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/hsweb-web-dao-impl-mybatis/src/main/java/org/hsweb/web/mybatis/builder/DefaultSqlParamBuilder.java b/hsweb-web-dao-impl-mybatis/src/main/java/org/hsweb/web/mybatis/builder/DefaultSqlParamBuilder.java index 557021ce5..b01ddec9c 100644 --- a/hsweb-web-dao-impl-mybatis/src/main/java/org/hsweb/web/mybatis/builder/DefaultSqlParamBuilder.java +++ b/hsweb-web-dao-impl-mybatis/src/main/java/org/hsweb/web/mybatis/builder/DefaultSqlParamBuilder.java @@ -62,6 +62,15 @@ public class DefaultSqlParamBuilder { return instance; } + public String encodeFiled(String field) { + if (field.contains(".")) { + String[] tmp = field.split("[.]"); + return tmp[0] + "." + getDialect().getQuoteStart() + (filedToUpperCase() ? (tmp[1].toUpperCase()) : tmp[1]) + getDialect().getQuoteEnd(); + } else { + return getDialect().getQuoteStart() + (filedToUpperCase() ? (field.toUpperCase()) : field) + getDialect().getQuoteEnd(); + } + } + public KeyWordMapper getKeyWordMapper(String type) { return (paramKey, tableName, term, jdbcType) -> { String termField = term.getField(); @@ -124,7 +133,7 @@ public class DefaultSqlParamBuilder { } param.setData(listData); String fields = mappings.keySet().stream() - .map(str -> new SqlAppender().add(getDialect().getQuoteStart(), filedToUpperCase() ? str.toUpperCase() : str, getDialect().getQuoteEnd()).toString()) + .map(str -> new SqlAppender().add(encodeFiled(str), "").toString()) .reduce((f1, f2) -> new SqlAppender().add(f1, ",", f2) .toString()).get(); //批量 @@ -166,9 +175,9 @@ public class DefaultSqlParamBuilder { if (!appender.isEmpty()) appender.add(","); if (!k.contains(".") || k.split("[.]")[0].equals(tableName)) { - appender.add(tableName, ".", getDialect().getQuoteStart(), filedToUpperCase() ? k.toUpperCase() : k, getDialect().getQuoteEnd(), " as "); + appender.add(tableName, ".", encodeFiled(k), " as "); } else { - appender.add(getDialect().getQuoteStart(), filedToUpperCase() ? k.toUpperCase() : k, getDialect().getQuoteEnd(), " as "); + appender.add(encodeFiled(k), " as "); } appender.addEdSpc(getDialect().getQuoteStart(), k, getDialect().getQuoteEnd()); }); @@ -189,7 +198,7 @@ public class DefaultSqlParamBuilder { if (!appender.isEmpty()) appender.add(","); Map config = ((Map) fieldConfig.get(k)); - appender.add(getDialect().getQuoteStart(), filedToUpperCase() ? k.toUpperCase() : k, getDialect().getQuoteEnd(), "=", "#{data.", v); + appender.add(encodeFiled(k), "=", "#{data.", v); if (config != null) { Object jdbcType = config.get("jdbcType"), javaType = config.get("javaType");