Ver Fonte

移除 el

miemie há 5 anos atrás
pai
commit
ae187146f9

+ 0 - 20
mybatis-plus-annotation/src/main/java/com/baomidou/mybatisplus/annotation/TableField.java

@@ -40,17 +40,6 @@ public @interface TableField {
      */
     String value() default "";
 
-    /**
-     * 当该Field为类对象时, 可使用#{对象.属性}来映射到数据表.
-     * <p>
-     * 例1:@TableField(el = "role, jdbcType=BIGINT)
-     * 例2:@TableField(el = "role, typeHandler=com.baomidou.springcloud.typehandler.PhoneTypeHandler")
-     *
-     * @deprecated 3.1.2 , to use {@link #jdbcType()} and {@link #typeHandler()}
-     */
-    @Deprecated
-    String el() default "";
-
     /**
      * 是否为数据库表字段
      * 默认 true 存在,false 不存在
@@ -74,15 +63,6 @@ public @interface TableField {
      */
     String update() default "";
 
-    /**
-     * 字段验证策略
-     * <p>默认追随全局配置</p>
-     *
-     * @deprecated 3.1.2 , to use {@link #insertStrategy} and {@link #updateStrategy} and {@link #whereStrategy}
-     */
-    @Deprecated
-    FieldStrategy strategy() default FieldStrategy.DEFAULT;
-
     /**
      * 字段验证策略之 insert: 当insert操作时,该字段拼接insert语句时的策略
      * IGNORED: 直接拼接 insert into table_a(column) values (#{columnProperty});

+ 1 - 1
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/conditions/Wrapper.java

@@ -137,7 +137,7 @@ public abstract class Wrapper<T> implements ISqlSegment {
      * 根据实体FieldStrategy属性来决定判断逻辑
      */
     private boolean fieldStrategyMatch(T entity, TableFieldInfo e) {
-        switch (e.getFieldStrategy()) {
+        switch (e.getWhereStrategy()) {
             case NOT_NULL:
                 return Objects.nonNull(ReflectionKit.getMethodValue(entity, e.getProperty()));
             case IGNORED:

+ 1 - 58
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/metadata/TableFieldInfo.java

@@ -113,7 +113,6 @@ public class TableFieldInfo implements Constants {
     private String update;
     /**
      * where 字段比较条件
-     * todo 待优化
      */
     private String condition = SqlCondition.EQUAL;
     /**
@@ -139,63 +138,7 @@ public class TableFieldInfo implements Constants {
     private Class<? extends TypeHandler<?>> typeHandler;
 
     /**
-     * 存在 TableField 注解时, 使用的构造函数
-     */
-    public TableFieldInfo(GlobalConfig.DbConfig dbConfig, TableInfo tableInfo, Field field,
-                          String column, String el, TableField tableField) {
-        this.version = field.getAnnotation(Version.class) != null;
-        this.property = field.getName();
-        this.propertyType = field.getType();
-        this.isCharSequence = StringUtils.isCharSequence(this.propertyType);
-        this.fieldFill = tableField.fill();
-        this.update = tableField.update();
-        this.el = el;
-        tableInfo.setLogicDelete(this.initLogicDelete(dbConfig, field));
-
-        if (StringUtils.isEmpty(tableField.value())) {
-            if (tableInfo.isUnderCamel()) {
-                column = StringUtils.camelToUnderline(column);
-            }
-        }
-        this.column = column;
-        this.related = TableInfoHelper.checkRelated(tableInfo.isUnderCamel(), this.property, this.column);
-
-        /*
-         * 优先使用单个字段注解,否则使用全局配置
-         */
-        if (tableField.insertStrategy() == FieldStrategy.DEFAULT) {
-            this.insertStrategy = dbConfig.getInsertStrategy();
-        } else {
-            this.insertStrategy = tableField.insertStrategy();
-        }
-        /*
-         * 优先使用单个字段注解,否则使用全局配置
-         */
-        if (tableField.updateStrategy() == FieldStrategy.DEFAULT) {
-            this.updateStrategy = dbConfig.getUpdateStrategy();
-        } else {
-            this.updateStrategy = tableField.updateStrategy();
-        }
-        /*
-         * 优先使用单个字段注解,否则使用全局配置
-         */
-        if (tableField.whereStrategy() == FieldStrategy.DEFAULT) {
-            this.whereStrategy = dbConfig.getSelectStrategy();
-        } else {
-            this.whereStrategy = tableField.whereStrategy();
-        }
-
-        if (StringUtils.isNotEmpty(tableField.condition())) {
-            // 细粒度条件控制
-            this.condition = tableField.condition();
-        }
-
-        // 字段是否注入查询
-        this.select = tableField.select();
-    }
-
-    /**
-     * 全新的 存在 TableField 注解并单独设置了 jdbcType 或者 typeHandler 时使用的构造函数
+     * 全新的 存在 TableField 注解时使用的构造函数
      */
     public TableFieldInfo(GlobalConfig.DbConfig dbConfig, TableInfo tableInfo, Field field, TableField tableField) {
         this.version = field.getAnnotation(Version.class) != null;

+ 4 - 47
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/metadata/TableInfoHelper.java

@@ -30,9 +30,6 @@ import org.apache.ibatis.mapping.SqlCommandType;
 import org.apache.ibatis.mapping.SqlSource;
 import org.apache.ibatis.mapping.StatementType;
 import org.apache.ibatis.scripting.LanguageDriver;
-import org.apache.ibatis.type.JdbcType;
-import org.apache.ibatis.type.TypeHandler;
-import org.apache.ibatis.type.UnknownTypeHandler;
 
 import java.lang.reflect.Field;
 import java.util.*;
@@ -265,7 +262,7 @@ public class TableInfoHelper {
                 }
             }
             /* 有 @TableField 注解的字段初始化 */
-            if (initTableFieldWithAnnotation(dbConfig, tableInfo, fieldList, field, clazz)) {
+            if (initTableFieldWithAnnotation(dbConfig, tableInfo, fieldList, field)) {
                 continue;
             }
 
@@ -397,54 +394,14 @@ public class TableInfoHelper {
      * @return true 继续下一个属性判断,返回 continue;
      */
     private static boolean initTableFieldWithAnnotation(GlobalConfig.DbConfig dbConfig, TableInfo tableInfo,
-                                                        List<TableFieldInfo> fieldList, Field field, Class<?> clazz) {
+                                                        List<TableFieldInfo> fieldList, Field field) {
         /* 获取注解属性,自定义字段 */
         TableField tableField = field.getAnnotation(TableField.class);
         if (null == tableField) {
             return false;
         }
-        JdbcType jdbcType = tableField.jdbcType();
-        Class<? extends TypeHandler<?>> typeHandler = tableField.typeHandler();
-        String numericScale = tableField.numericScale();
-        if (JdbcType.UNDEFINED != jdbcType || UnknownTypeHandler.class != typeHandler ||
-            StringUtils.isNotEmpty(numericScale)) {
-            // todo 暂时先这么搞,后面再优化
-            fieldList.add(new TableFieldInfo(dbConfig, tableInfo, field, tableField));
-            return true;
-        }
-        String columnName = field.getName();
-        boolean columnNameFromTableField = false;
-        if (StringUtils.isNotEmpty(tableField.value())) {
-            columnName = tableField.value();
-            columnNameFromTableField = true;
-        }
-        /*
-         * el 语法支持,可以传入多个参数以逗号分开
-         */
-        String el = field.getName();
-        if (StringUtils.isNotEmpty(tableField.el())) {
-            el = tableField.el();
-        }
-        String[] columns = columnName.split(StringPool.SEMICOLON);
-
-        String columnFormat = dbConfig.getColumnFormat();
-        if (StringUtils.isNotEmpty(columnFormat) && (!columnNameFromTableField || tableField.keepGlobalFormat())) {
-            for (int i = 0; i < columns.length; i++) {
-                String column = columns[i];
-                column = String.format(columnFormat, column);
-                columns[i] = column;
-            }
-        }
-
-        String[] els = el.split(StringPool.SEMICOLON);
-        if (columns.length == els.length) {
-            for (int i = 0; i < columns.length; i++) {
-                fieldList.add(new TableFieldInfo(dbConfig, tableInfo, field, columns[i], els[i], tableField));
-            }
-            return true;
-        }
-        throw ExceptionUtils.mpe("Class: %s, Field: %s, 'value' 'el' Length must be consistent.",
-            clazz.getName(), field.getName());
+        fieldList.add(new TableFieldInfo(dbConfig, tableInfo, field, tableField));
+        return true;
     }
 
     /**

+ 0 - 5
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/GlobalConfigUtils.java

@@ -15,7 +15,6 @@
  */
 package com.baomidou.mybatisplus.core.toolkit;
 
-import com.baomidou.mybatisplus.annotation.DbType;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.core.MybatisConfiguration;
 import com.baomidou.mybatisplus.core.config.GlobalConfig;
@@ -67,10 +66,6 @@ public class GlobalConfigUtils {
         return ((MybatisConfiguration) configuration).getGlobalConfig();
     }
 
-    public static DbType getDbType(Configuration configuration) {
-        return getGlobalConfig(configuration).getDbConfig().getDbType();
-    }
-
     public static IKeyGenerator getKeyGenerator(Configuration configuration) {
         return getGlobalConfig(configuration).getDbConfig().getKeyGenerator();
     }

+ 0 - 14
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/spring/MybatisSqlSessionFactoryBean.java

@@ -15,7 +15,6 @@
  */
 package com.baomidou.mybatisplus.extension.spring;
 
-import com.baomidou.mybatisplus.annotation.DbType;
 import com.baomidou.mybatisplus.core.MybatisConfiguration;
 import com.baomidou.mybatisplus.core.MybatisPlusVersion;
 import com.baomidou.mybatisplus.core.MybatisSqlSessionFactoryBuilder;
@@ -23,12 +22,9 @@ import com.baomidou.mybatisplus.core.MybatisXMLConfigBuilder;
 import com.baomidou.mybatisplus.core.config.GlobalConfig;
 import com.baomidou.mybatisplus.core.enums.IEnum;
 import com.baomidou.mybatisplus.core.toolkit.Assert;
-import com.baomidou.mybatisplus.core.toolkit.ExceptionUtils;
 import com.baomidou.mybatisplus.core.toolkit.GlobalConfigUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.baomidou.mybatisplus.extension.handlers.MybatisEnumTypeHandler;
-import com.baomidou.mybatisplus.extension.toolkit.AopUtils;
-import com.baomidou.mybatisplus.extension.toolkit.JdbcUtils;
 import com.baomidou.mybatisplus.extension.toolkit.PackageHelper;
 import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
 import lombok.Setter;
@@ -71,7 +67,6 @@ import org.springframework.util.ClassUtils;
 import javax.sql.DataSource;
 import java.io.IOException;
 import java.lang.reflect.Modifier;
-import java.sql.Connection;
 import java.sql.SQLException;
 import java.util.HashSet;
 import java.util.Optional;
@@ -475,15 +470,6 @@ public class MybatisSqlSessionFactoryBean implements FactoryBean<SqlSessionFacto
         // TODO 初始化 id-work 以及 打印骚东西
         targetConfiguration.setGlobalConfig(this.globalConfig);
 
-        // TODO 设置元数据相关 如果用户没有配置 dbType 则自动获取
-        if (globalConfig.getDbConfig().getDbType() == DbType.OTHER) {
-            try (Connection connection = AopUtils.getTargetObject(this.dataSource).getConnection()) {
-                globalConfig.getDbConfig().setDbType(JdbcUtils.getDbType(connection.getMetaData().getURL()));
-            } catch (Exception e) {
-                throw ExceptionUtils.mpe("Error: GlobalConfigUtils setMetaData Fail !  Cause:" + e);
-            }
-        }
-
         // TODO 自定义枚举类扫描处理
         if (hasLength(this.typeEnumsPackage)) {
             Set<Class<?>> classes;