Browse Source

优化 as 的逻辑

miemie 6 years ago
parent
commit
b8e0c85eb2

+ 17 - 24
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/TableInfoHelper.java

@@ -15,16 +15,12 @@
  */
 package com.baomidou.mybatisplus.core.toolkit;
 
-import static java.util.stream.Collectors.toList;
-
-import java.lang.reflect.Field;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.concurrent.ConcurrentHashMap;
-
+import com.baomidou.mybatisplus.annotation.*;
+import com.baomidou.mybatisplus.core.config.GlobalConfig;
+import com.baomidou.mybatisplus.core.incrementer.IKeyGenerator;
+import com.baomidou.mybatisplus.core.metadata.TableFieldInfo;
+import com.baomidou.mybatisplus.core.metadata.TableInfo;
+import com.baomidou.mybatisplus.core.toolkit.sql.SqlHelper;
 import org.apache.ibatis.builder.MapperBuilderAssistant;
 import org.apache.ibatis.executor.keygen.KeyGenerator;
 import org.apache.ibatis.executor.keygen.NoKeyGenerator;
@@ -39,16 +35,11 @@ import org.apache.ibatis.scripting.LanguageDriver;
 import org.apache.ibatis.session.Configuration;
 import org.apache.ibatis.session.SqlSessionFactory;
 
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.KeySequence;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.baomidou.mybatisplus.core.config.GlobalConfig;
-import com.baomidou.mybatisplus.core.incrementer.IKeyGenerator;
-import com.baomidou.mybatisplus.core.metadata.TableFieldInfo;
-import com.baomidou.mybatisplus.core.metadata.TableInfo;
-import com.baomidou.mybatisplus.core.toolkit.sql.SqlHelper;
+import java.lang.reflect.Field;
+import java.util.*;
+import java.util.concurrent.ConcurrentHashMap;
+
+import static java.util.stream.Collectors.toList;
 
 /**
  * <p>
@@ -433,19 +424,21 @@ public class TableInfoHelper {
      * @return related
      */
     public static boolean checkRelated(boolean underCamel, String property, String column) {
+        boolean existEscape = false;
         if (!StringUtils.isColumnName(column)) {
-            //首尾有转义符
+            // 首尾有转义符,手动在注解里设置了转义符
             column = column.substring(1, column.length() - 1);
+            existEscape = true;
         }
-        if (underCamel) {
+        if (underCamel && !existEscape) {
             /**
-             * 开启了驼峰,判断 property 下划线后是否与 column 相同 (全部转为小写)
+             * 开启了驼峰并且没使用注解里弄上转义符,判断 property 下划线后是否与 column 相同 (全部转为小写)
              * 相同则不需要 as ,则 related 为 false
              */
             return !StringUtils.camelToUnderline(property).equals(column.toLowerCase());
         } else {
             /**
-             * 未开启驼峰,判断 property 是否与 column 相同
+             * 未开启驼峰或者手动设置了转义符,判断 property 是否与 column 相同
              * 相同则不需要 as ,则 related 为 false
              */
             return !property.equals(column);