|
@@ -16,17 +16,19 @@
|
|
package com.baomidou.mybatisplus.core.metadata;
|
|
package com.baomidou.mybatisplus.core.metadata;
|
|
|
|
|
|
import com.baomidou.mybatisplus.annotation.*;
|
|
import com.baomidou.mybatisplus.annotation.*;
|
|
|
|
+import com.baomidou.mybatisplus.core.MybatisConfiguration;
|
|
import com.baomidou.mybatisplus.core.config.GlobalConfig;
|
|
import com.baomidou.mybatisplus.core.config.GlobalConfig;
|
|
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
|
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
-import com.baomidou.mybatisplus.core.toolkit.TableInfoHelper;
|
|
|
|
import com.baomidou.mybatisplus.core.toolkit.sql.SqlScriptUtils;
|
|
import com.baomidou.mybatisplus.core.toolkit.sql.SqlScriptUtils;
|
|
import lombok.AccessLevel;
|
|
import lombok.AccessLevel;
|
|
import lombok.EqualsAndHashCode;
|
|
import lombok.EqualsAndHashCode;
|
|
import lombok.Getter;
|
|
import lombok.Getter;
|
|
import lombok.ToString;
|
|
import lombok.ToString;
|
|
|
|
+import org.apache.ibatis.mapping.ResultMapping;
|
|
import org.apache.ibatis.type.JdbcType;
|
|
import org.apache.ibatis.type.JdbcType;
|
|
import org.apache.ibatis.type.TypeHandler;
|
|
import org.apache.ibatis.type.TypeHandler;
|
|
|
|
+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;
|
|
@@ -507,6 +509,30 @@ public class TableFieldInfo implements Constants {
|
|
return convertIf(sqlScript, newPrefix + property, whereStrategy);
|
|
return convertIf(sqlScript, newPrefix + property, whereStrategy);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 获取 ResultMapping
|
|
|
|
+ *
|
|
|
|
+ * @param configuration MybatisConfiguration
|
|
|
|
+ * @return ResultMapping
|
|
|
|
+ */
|
|
|
|
+ ResultMapping getResultMapping(final MybatisConfiguration configuration) {
|
|
|
|
+ ResultMapping.Builder builder = new ResultMapping.Builder(configuration, property,
|
|
|
|
+ StringUtils.getTargetColumn(column), propertyType);
|
|
|
|
+ TypeHandlerRegistry registry = configuration.getTypeHandlerRegistry();
|
|
|
|
+ if (jdbcType != null && jdbcType != JdbcType.UNDEFINED) {
|
|
|
|
+ builder.jdbcType(jdbcType);
|
|
|
|
+ }
|
|
|
|
+ if (typeHandler != null && typeHandler != UnknownTypeHandler.class) {
|
|
|
|
+ TypeHandler<?> typeHandler = registry.getMappingTypeHandler(this.typeHandler);
|
|
|
|
+ if (typeHandler == null) {
|
|
|
|
+ typeHandler = registry.getInstance(propertyType, this.typeHandler);
|
|
|
|
+ registry.register(typeHandler);
|
|
|
|
+ }
|
|
|
|
+ builder.typeHandler(typeHandler);
|
|
|
|
+ }
|
|
|
|
+ return builder.build();
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 转换成 if 标签的脚本片段
|
|
* 转换成 if 标签的脚本片段
|
|
*
|
|
*
|