移除 PARAM_TYPE

This commit is contained in:
yulichang 2022-12-14 15:28:13 +08:00
parent b805bb7696
commit f2ad31cbe4
10 changed files with 33 additions and 38 deletions

View File

@ -3,7 +3,6 @@ package com.github.yulichang.interceptor;
import com.baomidou.mybatisplus.core.metadata.TableInfo; import com.baomidou.mybatisplus.core.metadata.TableInfo;
import com.baomidou.mybatisplus.core.metadata.TableInfoHelper; import com.baomidou.mybatisplus.core.metadata.TableInfoHelper;
import com.baomidou.mybatisplus.core.toolkit.*; import com.baomidou.mybatisplus.core.toolkit.*;
import com.github.yulichang.interfaces.MPJBaseJoin;
import com.github.yulichang.mapper.MPJTableMapperHelper; import com.github.yulichang.mapper.MPJTableMapperHelper;
import com.github.yulichang.method.MPJResultType; import com.github.yulichang.method.MPJResultType;
import com.github.yulichang.query.MPJQueryWrapper; import com.github.yulichang.query.MPJQueryWrapper;
@ -15,8 +14,6 @@ import com.github.yulichang.wrapper.resultmap.Result;
import com.github.yulichang.wrapper.segments.Select; import com.github.yulichang.wrapper.segments.Select;
import com.github.yulichang.wrapper.segments.SelectLabel; import com.github.yulichang.wrapper.segments.SelectLabel;
import org.apache.ibatis.executor.Executor; import org.apache.ibatis.executor.Executor;
import org.apache.ibatis.logging.Log;
import org.apache.ibatis.logging.LogFactory;
import org.apache.ibatis.mapping.MappedStatement; import org.apache.ibatis.mapping.MappedStatement;
import org.apache.ibatis.mapping.ResultFlag; import org.apache.ibatis.mapping.ResultFlag;
import org.apache.ibatis.mapping.ResultMap; import org.apache.ibatis.mapping.ResultMap;
@ -46,8 +43,6 @@ import java.util.concurrent.ConcurrentHashMap;
public class MPJInterceptor implements Interceptor { public class MPJInterceptor implements Interceptor {
private static final Log logger = LogFactory.getLog(MPJInterceptor.class);
private static final List<ResultMapping> EMPTY_RESULT_MAPPING = new ArrayList<>(0); private static final List<ResultMapping> EMPTY_RESULT_MAPPING = new ArrayList<>(0);
/** /**
@ -65,11 +60,6 @@ public class MPJInterceptor implements Interceptor {
if (args[1] instanceof Map) { if (args[1] instanceof Map) {
Map<String, Object> map = (Map<String, Object>) args[1]; Map<String, Object> map = (Map<String, Object>) args[1];
Object ew = map.containsKey(Constants.WRAPPER) ? map.get(Constants.WRAPPER) : null; Object ew = map.containsKey(Constants.WRAPPER) ? map.get(Constants.WRAPPER) : null;
if (!map.containsKey(Constant.PARAM_TYPE)) {
map.put(Constant.PARAM_TYPE, Objects.nonNull(ew) && (ew instanceof MPJBaseJoin));
} else {
logger.warn(String.format("请不要使用MPJ预留参数名 %s", Constant.PARAM_TYPE));
}
if (CollectionUtils.isNotEmpty(map) && map.containsKey(Constant.CLAZZ)) { if (CollectionUtils.isNotEmpty(map) && map.containsKey(Constant.CLAZZ)) {
Class<?> clazz = (Class<?>) map.get(Constant.CLAZZ); Class<?> clazz = (Class<?>) map.get(Constant.CLAZZ);
if (Objects.nonNull(clazz)) { if (Objects.nonNull(clazz)) {

View File

@ -2,8 +2,9 @@ package com.github.yulichang.method.mp;
import com.baomidou.mybatisplus.core.metadata.MPJTableInfoHelper; import com.baomidou.mybatisplus.core.metadata.MPJTableInfoHelper;
import com.baomidou.mybatisplus.core.metadata.TableInfo; import com.baomidou.mybatisplus.core.metadata.TableInfo;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.core.toolkit.sql.SqlScriptUtils; import com.baomidou.mybatisplus.core.toolkit.sql.SqlScriptUtils;
import com.github.yulichang.toolkit.Constant; import com.github.yulichang.interfaces.MPJBaseJoin;
import org.apache.ibatis.mapping.MappedStatement; import org.apache.ibatis.mapping.MappedStatement;
/** /**
@ -28,7 +29,7 @@ public class SelectCount extends com.baomidou.mybatisplus.core.injector.methods.
@Override @Override
protected String sqlWhereEntityWrapper(boolean newLine, TableInfo table) { protected String sqlWhereEntityWrapper(boolean newLine, TableInfo table) {
return SqlScriptUtils.convertChoose(String.format("%s == null or !%s", Constant.PARAM_TYPE, Constant.PARAM_TYPE), return SqlScriptUtils.convertChoose(String.format("%s == null or !(%s instanceof %s)", Constants.WRAPPER, Constants.WRAPPER, MPJBaseJoin.class.getName()),
super.sqlWhereEntityWrapper(newLine, table), mpjSqlWhereEntityWrapper(newLine, table)); super.sqlWhereEntityWrapper(newLine, table), mpjSqlWhereEntityWrapper(newLine, table));
} }
} }

View File

@ -2,9 +2,10 @@ package com.github.yulichang.method.mp;
import com.baomidou.mybatisplus.core.metadata.MPJTableInfoHelper; import com.baomidou.mybatisplus.core.metadata.MPJTableInfoHelper;
import com.baomidou.mybatisplus.core.metadata.TableInfo; import com.baomidou.mybatisplus.core.metadata.TableInfo;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.core.toolkit.StringPool; import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.baomidou.mybatisplus.core.toolkit.sql.SqlScriptUtils; import com.baomidou.mybatisplus.core.toolkit.sql.SqlScriptUtils;
import com.github.yulichang.toolkit.Constant; import com.github.yulichang.interfaces.MPJBaseJoin;
import org.apache.ibatis.mapping.MappedStatement; import org.apache.ibatis.mapping.MappedStatement;
/** /**
@ -29,14 +30,14 @@ public class SelectList extends com.baomidou.mybatisplus.core.injector.methods.S
@Override @Override
protected String sqlWhereEntityWrapper(boolean newLine, TableInfo table) { protected String sqlWhereEntityWrapper(boolean newLine, TableInfo table) {
return SqlScriptUtils.convertChoose(String.format("%s == null or !%s", Constant.PARAM_TYPE, Constant.PARAM_TYPE), return SqlScriptUtils.convertChoose(String.format("%s == null or !(%s instanceof %s)", Constants.WRAPPER, Constants.WRAPPER, MPJBaseJoin.class.getName()),
super.sqlWhereEntityWrapper(newLine, table), mpjSqlWhereEntityWrapper(newLine, table)); super.sqlWhereEntityWrapper(newLine, table), mpjSqlWhereEntityWrapper(newLine, table));
} }
@Override @Override
protected String sqlSelectColumns(TableInfo table, boolean queryWrapper) { protected String sqlSelectColumns(TableInfo table, boolean queryWrapper) {
String selectColumns = super.sqlSelectColumns(table, queryWrapper); String selectColumns = super.sqlSelectColumns(table, queryWrapper);
return SqlScriptUtils.convertChoose(String.format("%s == null or !%s", Constant.PARAM_TYPE, Constant.PARAM_TYPE), return SqlScriptUtils.convertChoose(String.format("%s == null or !(%s instanceof %s)", Constants.WRAPPER, Constants.WRAPPER, MPJBaseJoin.class.getName()),
selectColumns, mpjSqlSelectColumns() + StringPool.SPACE + selectColumns); selectColumns, mpjSqlSelectColumns() + StringPool.SPACE + selectColumns);
} }
} }

View File

@ -2,9 +2,10 @@ package com.github.yulichang.method.mp;
import com.baomidou.mybatisplus.core.metadata.MPJTableInfoHelper; import com.baomidou.mybatisplus.core.metadata.MPJTableInfoHelper;
import com.baomidou.mybatisplus.core.metadata.TableInfo; import com.baomidou.mybatisplus.core.metadata.TableInfo;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.core.toolkit.StringPool; import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.baomidou.mybatisplus.core.toolkit.sql.SqlScriptUtils; import com.baomidou.mybatisplus.core.toolkit.sql.SqlScriptUtils;
import com.github.yulichang.toolkit.Constant; import com.github.yulichang.interfaces.MPJBaseJoin;
import org.apache.ibatis.mapping.MappedStatement; import org.apache.ibatis.mapping.MappedStatement;
/** /**
@ -29,14 +30,14 @@ public class SelectMaps extends com.baomidou.mybatisplus.core.injector.methods.S
@Override @Override
protected String sqlWhereEntityWrapper(boolean newLine, TableInfo table) { protected String sqlWhereEntityWrapper(boolean newLine, TableInfo table) {
return SqlScriptUtils.convertChoose(String.format("%s == null or !%s", Constant.PARAM_TYPE, Constant.PARAM_TYPE), return SqlScriptUtils.convertChoose(String.format("%s == null or !(%s instanceof %s)", Constants.WRAPPER, Constants.WRAPPER, MPJBaseJoin.class.getName()),
super.sqlWhereEntityWrapper(newLine, table), mpjSqlWhereEntityWrapper(newLine, table)); super.sqlWhereEntityWrapper(newLine, table), mpjSqlWhereEntityWrapper(newLine, table));
} }
@Override @Override
protected String sqlSelectColumns(TableInfo table, boolean queryWrapper) { protected String sqlSelectColumns(TableInfo table, boolean queryWrapper) {
String selectColumns = super.sqlSelectColumns(table, queryWrapper); String selectColumns = super.sqlSelectColumns(table, queryWrapper);
return SqlScriptUtils.convertChoose(String.format("%s == null or !%s", Constant.PARAM_TYPE, Constant.PARAM_TYPE), return SqlScriptUtils.convertChoose(String.format("%s == null or !(%s instanceof %s)", Constants.WRAPPER, Constants.WRAPPER, MPJBaseJoin.class.getName()),
selectColumns, mpjSqlSelectColumns() + StringPool.SPACE + selectColumns); selectColumns, mpjSqlSelectColumns() + StringPool.SPACE + selectColumns);
} }
} }

View File

@ -2,9 +2,10 @@ package com.github.yulichang.method.mp;
import com.baomidou.mybatisplus.core.metadata.MPJTableInfoHelper; import com.baomidou.mybatisplus.core.metadata.MPJTableInfoHelper;
import com.baomidou.mybatisplus.core.metadata.TableInfo; import com.baomidou.mybatisplus.core.metadata.TableInfo;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.core.toolkit.StringPool; import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.baomidou.mybatisplus.core.toolkit.sql.SqlScriptUtils; import com.baomidou.mybatisplus.core.toolkit.sql.SqlScriptUtils;
import com.github.yulichang.toolkit.Constant; import com.github.yulichang.interfaces.MPJBaseJoin;
import org.apache.ibatis.mapping.MappedStatement; import org.apache.ibatis.mapping.MappedStatement;
/** /**
@ -29,14 +30,14 @@ public class SelectMapsPage extends com.baomidou.mybatisplus.core.injector.metho
@Override @Override
protected String sqlWhereEntityWrapper(boolean newLine, TableInfo table) { protected String sqlWhereEntityWrapper(boolean newLine, TableInfo table) {
return SqlScriptUtils.convertChoose(String.format("%s == null or !%s", Constant.PARAM_TYPE, Constant.PARAM_TYPE), return SqlScriptUtils.convertChoose(String.format("%s == null or !(%s instanceof %s)", Constants.WRAPPER, Constants.WRAPPER, MPJBaseJoin.class.getName()),
super.sqlWhereEntityWrapper(newLine, table), mpjSqlWhereEntityWrapper(newLine, table)); super.sqlWhereEntityWrapper(newLine, table), mpjSqlWhereEntityWrapper(newLine, table));
} }
@Override @Override
protected String sqlSelectColumns(TableInfo table, boolean queryWrapper) { protected String sqlSelectColumns(TableInfo table, boolean queryWrapper) {
String selectColumns = super.sqlSelectColumns(table, queryWrapper); String selectColumns = super.sqlSelectColumns(table, queryWrapper);
return SqlScriptUtils.convertChoose(String.format("%s == null or !%s", Constant.PARAM_TYPE, Constant.PARAM_TYPE), return SqlScriptUtils.convertChoose(String.format("%s == null or !(%s instanceof %s)", Constants.WRAPPER, Constants.WRAPPER, MPJBaseJoin.class.getName()),
selectColumns, mpjSqlSelectColumns() + StringPool.SPACE + selectColumns); selectColumns, mpjSqlSelectColumns() + StringPool.SPACE + selectColumns);
} }
} }

View File

@ -2,9 +2,10 @@ package com.github.yulichang.method.mp;
import com.baomidou.mybatisplus.core.metadata.MPJTableInfoHelper; import com.baomidou.mybatisplus.core.metadata.MPJTableInfoHelper;
import com.baomidou.mybatisplus.core.metadata.TableInfo; import com.baomidou.mybatisplus.core.metadata.TableInfo;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.core.toolkit.StringPool; import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.baomidou.mybatisplus.core.toolkit.sql.SqlScriptUtils; import com.baomidou.mybatisplus.core.toolkit.sql.SqlScriptUtils;
import com.github.yulichang.toolkit.Constant; import com.github.yulichang.interfaces.MPJBaseJoin;
import org.apache.ibatis.mapping.MappedStatement; import org.apache.ibatis.mapping.MappedStatement;
/** /**
@ -29,14 +30,14 @@ public class SelectObjs extends com.baomidou.mybatisplus.core.injector.methods.S
@Override @Override
protected String sqlWhereEntityWrapper(boolean newLine, TableInfo table) { protected String sqlWhereEntityWrapper(boolean newLine, TableInfo table) {
return SqlScriptUtils.convertChoose(String.format("%s == null or !%s", Constant.PARAM_TYPE, Constant.PARAM_TYPE), return SqlScriptUtils.convertChoose(String.format("%s == null or !(%s instanceof %s)", Constants.WRAPPER, Constants.WRAPPER, MPJBaseJoin.class.getName()),
super.sqlWhereEntityWrapper(newLine, table), mpjSqlWhereEntityWrapper(newLine, table)); super.sqlWhereEntityWrapper(newLine, table), mpjSqlWhereEntityWrapper(newLine, table));
} }
@Override @Override
protected String sqlSelectColumns(TableInfo table, boolean queryWrapper) { protected String sqlSelectColumns(TableInfo table, boolean queryWrapper) {
String selectColumns = super.sqlSelectColumns(table, queryWrapper); String selectColumns = super.sqlSelectColumns(table, queryWrapper);
return SqlScriptUtils.convertChoose(String.format("%s == null or !%s", Constant.PARAM_TYPE, Constant.PARAM_TYPE), return SqlScriptUtils.convertChoose(String.format("%s == null or !(%s instanceof %s)", Constants.WRAPPER, Constants.WRAPPER, MPJBaseJoin.class.getName()),
selectColumns, mpjSqlSelectColumns() + StringPool.SPACE + selectColumns); selectColumns, mpjSqlSelectColumns() + StringPool.SPACE + selectColumns);
} }
} }

View File

@ -2,9 +2,10 @@ package com.github.yulichang.method.mp;
import com.baomidou.mybatisplus.core.metadata.MPJTableInfoHelper; import com.baomidou.mybatisplus.core.metadata.MPJTableInfoHelper;
import com.baomidou.mybatisplus.core.metadata.TableInfo; import com.baomidou.mybatisplus.core.metadata.TableInfo;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.core.toolkit.StringPool; import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.baomidou.mybatisplus.core.toolkit.sql.SqlScriptUtils; import com.baomidou.mybatisplus.core.toolkit.sql.SqlScriptUtils;
import com.github.yulichang.toolkit.Constant; import com.github.yulichang.interfaces.MPJBaseJoin;
import org.apache.ibatis.mapping.MappedStatement; import org.apache.ibatis.mapping.MappedStatement;
/** /**
@ -34,14 +35,14 @@ public class SelectOne extends com.baomidou.mybatisplus.core.injector.methods.Se
@Override @Override
protected String sqlWhereEntityWrapper(boolean newLine, TableInfo table) { protected String sqlWhereEntityWrapper(boolean newLine, TableInfo table) {
return SqlScriptUtils.convertChoose(String.format("%s == null or !%s", Constant.PARAM_TYPE, Constant.PARAM_TYPE), return SqlScriptUtils.convertChoose(String.format("%s == null or !(%s instanceof %s)", Constants.WRAPPER, Constants.WRAPPER, MPJBaseJoin.class.getName()),
super.sqlWhereEntityWrapper(newLine, table), mpjSqlWhereEntityWrapper(newLine, table)); super.sqlWhereEntityWrapper(newLine, table), mpjSqlWhereEntityWrapper(newLine, table));
} }
@Override @Override
protected String sqlSelectColumns(TableInfo table, boolean queryWrapper) { protected String sqlSelectColumns(TableInfo table, boolean queryWrapper) {
String selectColumns = super.sqlSelectColumns(table, queryWrapper); String selectColumns = super.sqlSelectColumns(table, queryWrapper);
return SqlScriptUtils.convertChoose(String.format("%s == null or !%s", Constant.PARAM_TYPE, Constant.PARAM_TYPE), return SqlScriptUtils.convertChoose(String.format("%s == null or !(%s instanceof %s)", Constants.WRAPPER, Constants.WRAPPER, MPJBaseJoin.class.getName()),
selectColumns, mpjSqlSelectColumns() + StringPool.SPACE + selectColumns); selectColumns, mpjSqlSelectColumns() + StringPool.SPACE + selectColumns);
} }
} }

View File

@ -2,9 +2,10 @@ package com.github.yulichang.method.mp;
import com.baomidou.mybatisplus.core.metadata.MPJTableInfoHelper; import com.baomidou.mybatisplus.core.metadata.MPJTableInfoHelper;
import com.baomidou.mybatisplus.core.metadata.TableInfo; import com.baomidou.mybatisplus.core.metadata.TableInfo;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.core.toolkit.StringPool; import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.baomidou.mybatisplus.core.toolkit.sql.SqlScriptUtils; import com.baomidou.mybatisplus.core.toolkit.sql.SqlScriptUtils;
import com.github.yulichang.toolkit.Constant; import com.github.yulichang.interfaces.MPJBaseJoin;
import org.apache.ibatis.mapping.MappedStatement; import org.apache.ibatis.mapping.MappedStatement;
/** /**
@ -29,14 +30,14 @@ public class SelectPage extends com.baomidou.mybatisplus.core.injector.methods.S
@Override @Override
protected String sqlWhereEntityWrapper(boolean newLine, TableInfo table) { protected String sqlWhereEntityWrapper(boolean newLine, TableInfo table) {
return SqlScriptUtils.convertChoose(String.format("%s == null or !%s", Constant.PARAM_TYPE, Constant.PARAM_TYPE), return SqlScriptUtils.convertChoose(String.format("%s == null or !(%s instanceof %s)", Constants.WRAPPER, Constants.WRAPPER, MPJBaseJoin.class.getName()),
super.sqlWhereEntityWrapper(newLine, table), mpjSqlWhereEntityWrapper(newLine, table)); super.sqlWhereEntityWrapper(newLine, table), mpjSqlWhereEntityWrapper(newLine, table));
} }
@Override @Override
protected String sqlSelectColumns(TableInfo table, boolean queryWrapper) { protected String sqlSelectColumns(TableInfo table, boolean queryWrapper) {
String selectColumns = super.sqlSelectColumns(table, queryWrapper); String selectColumns = super.sqlSelectColumns(table, queryWrapper);
return SqlScriptUtils.convertChoose(String.format("%s == null or !%s", Constant.PARAM_TYPE, Constant.PARAM_TYPE), return SqlScriptUtils.convertChoose(String.format("%s == null or !(%s instanceof %s)", Constants.WRAPPER, Constants.WRAPPER, MPJBaseJoin.class.getName()),
selectColumns, mpjSqlSelectColumns() + StringPool.SPACE + selectColumns); selectColumns, mpjSqlSelectColumns() + StringPool.SPACE + selectColumns);
} }
} }

View File

@ -3,8 +3,8 @@ package com.github.yulichang.method.mp;
import com.baomidou.mybatisplus.core.metadata.TableInfo; import com.baomidou.mybatisplus.core.metadata.TableInfo;
import com.baomidou.mybatisplus.core.toolkit.Constants; import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.core.toolkit.sql.SqlScriptUtils; import com.baomidou.mybatisplus.core.toolkit.sql.SqlScriptUtils;
import com.github.yulichang.interfaces.MPJBaseJoin;
import com.github.yulichang.method.MPJBaseMethod; import com.github.yulichang.method.MPJBaseMethod;
import com.github.yulichang.toolkit.Constant;
/** /**
* 兼容原生方法 * 兼容原生方法
@ -15,10 +15,10 @@ import com.github.yulichang.toolkit.Constant;
public interface TableAlias extends Constants, MPJBaseMethod { public interface TableAlias extends Constants, MPJBaseMethod {
default String getTableName(TableInfo tableInfo) { default String getTableName(TableInfo tableInfo) {
return tableInfo.getTableName() + SPACE + SqlScriptUtils.convertIf("${ew.alias}", String from = SqlScriptUtils.convertIf("${ew.from}",
String.format("%s != null and %s", Constant.PARAM_TYPE, Constant.PARAM_TYPE), false) String.format("%s != null and %s != ''", "ew.from", "ew.from"), true);
+ SPACE + SqlScriptUtils.convertIf("${ew.from}", String alias = SqlScriptUtils.convertIf("${ew.alias}" + NEWLINE + from,
String.format("%s != null and %s and %s != null and %s != ''", Constant.PARAM_TYPE, Constant.PARAM_TYPE, String.format("%s != null and %s instanceof %s", Constants.WRAPPER, Constants.WRAPPER, MPJBaseJoin.class.getName()), true);
"ew.from", "ew.from"), false); return tableInfo.getTableName() + SPACE + alias;
} }
} }

View File

@ -27,8 +27,6 @@ public interface Constant {
String CLAZZ = "resultTypeClass_Eg1sG"; String CLAZZ = "resultTypeClass_Eg1sG";
String PARAM_TYPE = "paramType_Gr8re1Ee";
/** /**
* " LEFT JOIN " * " LEFT JOIN "
*/ */