mirror of
https://gitee.com/mybatis-flex/mybatis-flex.git
synced 2025-12-06 16:48:24 +08:00
optimize: The table name of QueryWrapper takes precedence over the default of baseMapper
This commit is contained in:
parent
b0c79dac0b
commit
b9a152c582
@ -34,13 +34,12 @@ import java.util.Map;
|
|||||||
|
|
||||||
public class EntitySqlProvider {
|
public class EntitySqlProvider {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 不让实例化,使用静态方法的模式,效率更高,非静态方法每次都会实例化当前类
|
* 不让实例化,使用静态方法的模式,效率更高,非静态方法每次都会实例化当前类
|
||||||
* 参考源码: {{@link org.apache.ibatis.builder.annotation.ProviderSqlSource#getBoundSql(Object)}
|
* 参考源码: {{@link org.apache.ibatis.builder.annotation.ProviderSqlSource#getBoundSql(Object)}
|
||||||
*/
|
*/
|
||||||
private EntitySqlProvider() {
|
private EntitySqlProvider() {}
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* insert 的 sql 构建
|
* insert 的 sql 构建
|
||||||
@ -72,7 +71,7 @@ public class EntitySqlProvider {
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* insertBatchWithFirstEntityColumns 的 sql 构建
|
* insertBatch 的 sql 构建
|
||||||
*
|
*
|
||||||
* @param params
|
* @param params
|
||||||
* @param context
|
* @param context
|
||||||
@ -92,12 +91,13 @@ public class EntitySqlProvider {
|
|||||||
tableInfo.initLogicDeleteValueIfNecessary(entity);
|
tableInfo.initLogicDeleteValueIfNecessary(entity);
|
||||||
}
|
}
|
||||||
|
|
||||||
Object[] values = new Object[0];
|
|
||||||
|
Object[] allValues = new Object[0];
|
||||||
for (Object entity : entities) {
|
for (Object entity : entities) {
|
||||||
values = ArrayUtil.concat(values, tableInfo.buildInsertSqlArgs(entity));
|
allValues = ArrayUtil.concat(allValues, tableInfo.buildInsertSqlArgs(entity));
|
||||||
}
|
}
|
||||||
|
|
||||||
ProviderUtil.setSqlArgs(params, values);
|
ProviderUtil.setSqlArgs(params, allValues);
|
||||||
|
|
||||||
return DialectFactory.getDialect().forInsertEntityBatch(tableInfo, entities);
|
return DialectFactory.getDialect().forInsertEntityBatch(tableInfo, entities);
|
||||||
}
|
}
|
||||||
@ -162,7 +162,9 @@ public class EntitySqlProvider {
|
|||||||
ProviderUtil.setSqlArgs(params, CPI.getValueArray(queryWrapper));
|
ProviderUtil.setSqlArgs(params, CPI.getValueArray(queryWrapper));
|
||||||
|
|
||||||
TableInfo tableInfo = ProviderUtil.getTableInfo(context);
|
TableInfo tableInfo = ProviderUtil.getTableInfo(context);
|
||||||
queryWrapper.from(tableInfo.getTableName());
|
|
||||||
|
// queryWrapper.from(tableInfo.getTableName());
|
||||||
|
CPI.setFromIfNecessary(queryWrapper,tableInfo.getTableName());
|
||||||
|
|
||||||
return DialectFactory.getDialect().forDeleteEntityBatchByQuery(tableInfo, queryWrapper);
|
return DialectFactory.getDialect().forDeleteEntityBatchByQuery(tableInfo, queryWrapper);
|
||||||
}
|
}
|
||||||
@ -294,7 +296,8 @@ public class EntitySqlProvider {
|
|||||||
Object[] values = CPI.getValueArray(queryWrapper);
|
Object[] values = CPI.getValueArray(queryWrapper);
|
||||||
ProviderUtil.setSqlArgs(params, values);
|
ProviderUtil.setSqlArgs(params, values);
|
||||||
|
|
||||||
queryWrapper.from(tableInfo.getTableName());
|
// queryWrapper.from(tableInfo.getTableName());
|
||||||
|
CPI.setFromIfNecessary(queryWrapper,tableInfo.getTableName());
|
||||||
|
|
||||||
return DialectFactory.getDialect().forSelectListByQuery(queryWrapper);
|
return DialectFactory.getDialect().forSelectListByQuery(queryWrapper);
|
||||||
}
|
}
|
||||||
@ -324,7 +327,8 @@ public class EntitySqlProvider {
|
|||||||
Object[] values = CPI.getValueArray(queryWrapper);
|
Object[] values = CPI.getValueArray(queryWrapper);
|
||||||
ProviderUtil.setSqlArgs(params, values);
|
ProviderUtil.setSqlArgs(params, values);
|
||||||
|
|
||||||
queryWrapper.from(tableInfo.getTableName());
|
// queryWrapper.from(tableInfo.getTableName());
|
||||||
|
CPI.setFromIfNecessary(queryWrapper,tableInfo.getTableName());
|
||||||
return DialectFactory.getDialect().forSelectCountByQuery(queryWrapper);
|
return DialectFactory.getDialect().forSelectCountByQuery(queryWrapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -16,6 +16,7 @@
|
|||||||
package com.mybatisflex.core.query;
|
package com.mybatisflex.core.query;
|
||||||
|
|
||||||
import com.mybatisflex.core.dialect.IDialect;
|
import com.mybatisflex.core.dialect.IDialect;
|
||||||
|
import com.mybatisflex.core.util.CollectionUtil;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -127,4 +128,10 @@ public class CPI {
|
|||||||
public static String toSelectSql(QueryColumn queryColumn,List<QueryTable> queryTables, IDialect dialect) {
|
public static String toSelectSql(QueryColumn queryColumn,List<QueryTable> queryTables, IDialect dialect) {
|
||||||
return queryColumn.toSelectSql(queryTables,dialect);
|
return queryColumn.toSelectSql(queryTables,dialect);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void setFromIfNecessary(QueryWrapper queryWrapper,String tableName){
|
||||||
|
if (CollectionUtil.isEmpty(queryWrapper.getQueryTables())){
|
||||||
|
queryWrapper.from(tableName);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user