优化对TypeHandle的支持

This commit is contained in:
yulichang 2022-11-03 16:52:23 +08:00
parent e3a9d4f94c
commit 56e1d28d49
2 changed files with 12 additions and 13 deletions

View File

@ -28,10 +28,7 @@ import org.apache.ibatis.type.TypeHandlerRegistry;
import org.apache.ibatis.type.UnknownTypeHandler; import org.apache.ibatis.type.UnknownTypeHandler;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.util.ArrayList; import java.util.*;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
/** /**
@ -153,7 +150,9 @@ public class MPJInterceptor implements Interceptor {
String currentNamespace = ms.getResource().split(StringPool.SPACE)[0]; String currentNamespace = ms.getResource().split(StringPool.SPACE)[0];
String id = currentNamespace + StringPool.DOT + Constants.MYBATIS_PLUS + StringPool.UNDERSCORE + resultType.getSimpleName(); String id = currentNamespace + StringPool.DOT + Constants.MYBATIS_PLUS + StringPool.UNDERSCORE + resultType.getSimpleName();
if (!(obj instanceof MPJLambdaWrapper)) { if (!(obj instanceof MPJLambdaWrapper) || Map.class.isAssignableFrom(resultType) ||
ReflectionKit.isPrimitiveOrWrapper(resultType) ||
Collection.class.isAssignableFrom(resultType)) {
return getDefaultResultMap(tableInfo, ms, resultType, id); return getDefaultResultMap(tableInfo, ms, resultType, id);
} }
MPJLambdaWrapper wrapper = (MPJLambdaWrapper) obj; MPJLambdaWrapper wrapper = (MPJLambdaWrapper) obj;

View File

@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.github.yulichang.toolkit.UniqueObject; import com.github.yulichang.toolkit.UniqueObject;
import com.github.yulichang.wrapper.enums.BaseFuncEnum; import com.github.yulichang.wrapper.enums.BaseFuncEnum;
import lombok.Data; import lombok.Getter;
import java.util.Objects; import java.util.Objects;
@ -15,38 +15,38 @@ import java.util.Objects;
* @author yulichang * @author yulichang
* @since 1.2.5 * @since 1.2.5
*/ */
@Data @Getter
public class SelectColumn implements UniqueObject { public class SelectColumn implements UniqueObject {
/** /**
* 字段实体类 * 字段实体类
*/ */
private Class<?> clazz; private final Class<?> clazz;
/** /**
* 数据库字段名 * 数据库字段名
*/ */
private String columnName; private final String columnName;
/** /**
* 字段信息 * 字段信息
*/ */
private TableFieldInfo tableFieldInfo; private final TableFieldInfo tableFieldInfo;
/** /**
* 字段别名 * 字段别名
*/ */
private String alias; private final String alias;
/** /**
* 目标属性 * 目标属性
*/ */
private String tagProperty; private final String tagProperty;
/** /**
* 字段函数 * 字段函数
*/ */
private BaseFuncEnum funcEnum; private final BaseFuncEnum funcEnum;
private SelectColumn(Class<?> clazz, String columnName, TableFieldInfo tableFieldInfo, String alias, String tagProperty, BaseFuncEnum funcEnum) { private SelectColumn(Class<?> clazz, String columnName, TableFieldInfo tableFieldInfo, String alias, String tagProperty, BaseFuncEnum funcEnum) {