diff --git a/src/main/java/com/github/yulichang/interceptor/MPJInterceptor.java b/src/main/java/com/github/yulichang/interceptor/MPJInterceptor.java index 8467dc7..7e44ff5 100644 --- a/src/main/java/com/github/yulichang/interceptor/MPJInterceptor.java +++ b/src/main/java/com/github/yulichang/interceptor/MPJInterceptor.java @@ -2,6 +2,7 @@ package com.github.yulichang.interceptor; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptor; +import com.github.yulichang.method.MPJResultType; import com.github.yulichang.toolkit.Constant; import org.apache.ibatis.executor.Executor; import org.apache.ibatis.mapping.BoundSql; @@ -14,6 +15,7 @@ import java.lang.reflect.Field; import java.sql.SQLException; import java.util.List; import java.util.Map; +import java.util.Objects; /** * 结果封装拦截器 @@ -41,10 +43,14 @@ public class MPJInterceptor implements InnerInterceptor { if (CollectionUtils.isNotEmpty(map)) { try { Class clazz = (Class) map.get(Constant.CLAZZ); - List list = ms.getResultMaps(); - if (CollectionUtils.isNotEmpty(list)) { - ResultMap resultMap = list.get(0); - type.set(resultMap, clazz); + if (Objects.nonNull(clazz)) { + List list = ms.getResultMaps(); + if (CollectionUtils.isNotEmpty(list)) { + ResultMap resultMap = list.get(0); + if (resultMap.getType() == MPJResultType.class) { + type.set(resultMap, clazz); + } + } } } catch (Exception ignored) { //通常是MapperMethod内部类HashMap的子类ParamMap重写了了get方法抛出的BindingException diff --git a/src/main/java/com/github/yulichang/method/MPJResultType.java b/src/main/java/com/github/yulichang/method/MPJResultType.java new file mode 100644 index 0000000..5883df7 --- /dev/null +++ b/src/main/java/com/github/yulichang/method/MPJResultType.java @@ -0,0 +1,11 @@ +package com.github.yulichang.method; + +import java.io.Serializable; + +/** + * result type 标识类 + * + * @author yulichang + */ +public class MPJResultType implements Serializable { +} diff --git a/src/main/java/com/github/yulichang/method/SelectJoinList.java b/src/main/java/com/github/yulichang/method/SelectJoinList.java index c51ced8..6918275 100644 --- a/src/main/java/com/github/yulichang/method/SelectJoinList.java +++ b/src/main/java/com/github/yulichang/method/SelectJoinList.java @@ -17,6 +17,6 @@ public class SelectJoinList extends MPJAbstractMethod { String sql = String.format(sqlMethod.getSql(), sqlFirst(), sqlSelectColumns(tableInfo, true), tableInfo.getTableName(), sqlAlias(), sqlFrom(), sqlWhereEntityWrapper(true, tableInfo), sqlComment()); SqlSource sqlSource = languageDriver.createSqlSource(configuration, sql, modelClass); - return this.addSelectMappedStatementForOther(mapperClass, sqlMethod.getMethod(), sqlSource, Object.class); + return this.addSelectMappedStatementForOther(mapperClass, sqlMethod.getMethod(), sqlSource, MPJResultType.class); } } diff --git a/src/main/java/com/github/yulichang/method/SelectJoinOne.java b/src/main/java/com/github/yulichang/method/SelectJoinOne.java index 47d0a8d..3d37df4 100644 --- a/src/main/java/com/github/yulichang/method/SelectJoinOne.java +++ b/src/main/java/com/github/yulichang/method/SelectJoinOne.java @@ -17,6 +17,6 @@ public class SelectJoinOne extends MPJAbstractMethod { String sql = String.format(sqlMethod.getSql(), sqlFirst(), sqlSelectColumns(tableInfo, true), tableInfo.getTableName(), sqlAlias(), sqlFrom(), sqlWhereEntityWrapper(true, tableInfo), sqlComment()); SqlSource sqlSource = languageDriver.createSqlSource(configuration, sql, modelClass); - return this.addSelectMappedStatementForOther(mapperClass, sqlMethod.getMethod(), sqlSource, Object.class); + return this.addSelectMappedStatementForOther(mapperClass, sqlMethod.getMethod(), sqlSource, MPJResultType.class); } } diff --git a/src/main/java/com/github/yulichang/method/SelectJoinPage.java b/src/main/java/com/github/yulichang/method/SelectJoinPage.java index 1a94e5e..0f9a03b 100644 --- a/src/main/java/com/github/yulichang/method/SelectJoinPage.java +++ b/src/main/java/com/github/yulichang/method/SelectJoinPage.java @@ -17,6 +17,6 @@ public class SelectJoinPage extends MPJAbstractMethod { String sql = String.format(sqlMethod.getSql(), sqlFirst(), sqlSelectColumns(tableInfo, true), tableInfo.getTableName(), sqlAlias(), sqlFrom(), sqlWhereEntityWrapper(true, tableInfo), sqlComment()); SqlSource sqlSource = languageDriver.createSqlSource(configuration, sql, modelClass); - return this.addSelectMappedStatementForOther(mapperClass, sqlMethod.getMethod(), sqlSource, Object.class); + return this.addSelectMappedStatementForOther(mapperClass, sqlMethod.getMethod(), sqlSource, MPJResultType.class); } } diff --git a/src/main/java/com/github/yulichang/toolkit/Constant.java b/src/main/java/com/github/yulichang/toolkit/Constant.java index 834b42a..352be8a 100644 --- a/src/main/java/com/github/yulichang/toolkit/Constant.java +++ b/src/main/java/com/github/yulichang/toolkit/Constant.java @@ -25,7 +25,7 @@ public interface Constant { String INNER = "INNER"; - String CLAZZ = "clazz"; + String CLAZZ = "resultTypeClass_Eg1sG"; /** * " LEFT JOIN " diff --git a/src/main/java/com/github/yulichang/toolkit/Wrappers.java b/src/main/java/com/github/yulichang/toolkit/Wrappers.java index dbb5520..29901b8 100644 --- a/src/main/java/com/github/yulichang/toolkit/Wrappers.java +++ b/src/main/java/com/github/yulichang/toolkit/Wrappers.java @@ -18,6 +18,7 @@ public class Wrappers { return new MPJQueryWrapper<>(); } + @Deprecated public static MPJLambdaQueryWrapper lambdaJoin() { return new MPJLambdaQueryWrapper<>(); }