mirror of
https://github.com/hs-web/hsweb-framework.git
synced 2026-06-25 09:17:21 +08:00
修复关联查询也被标记为列的bug.比如 creator.name,应该解析为create."name".
This commit is contained in:
@@ -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<String, Object> 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");
|
||||
|
||||
Reference in New Issue
Block a user