Explorar el Código

注解增加变量控制是否自动生成resultmap

miemie hace 6 años
padre
commit
069f605057

+ 5 - 0
mybatis-plus-annotation/src/main/java/com/baomidou/mybatisplus/annotation/TableName.java

@@ -53,4 +53,9 @@ public @interface TableName {
      * 实体映射结果集
      */
     String resultMap() default "";
+
+    /**
+     * 是否自动构建 resultMap 并使用
+     */
+    boolean autoResultMap() default false;
 }

+ 5 - 1
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/metadata/TableInfo.java

@@ -63,6 +63,10 @@ public class TableInfo implements Constants {
      * 表映射结果集
      */
     private String resultMap;
+    /**
+     * 是否是需要自动生成的 resultMap
+     */
+    private boolean autoInitResultMap;
     /**
      * 是否是自动生成的 resultMap
      */
@@ -340,7 +344,7 @@ public class TableInfo implements Constants {
      * 自动构建 resultMap 并注入(如果条件符合的话)
      */
     public void initResultMapIfNeed() {
-        if (resultMap == null && configuration != null) {
+        if (resultMap == null && autoInitResultMap) {
             String id = currentNamespace + DOT + MYBATIS_PLUS + UNDERSCORE + entityType.getSimpleName();
             List<ResultMapping> resultMappings = new ArrayList<>();
             if (keyType != null) {

+ 1 - 0
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/TableInfoHelper.java

@@ -184,6 +184,7 @@ public class TableInfoHelper {
             if (StringUtils.isNotEmpty(table.resultMap())) {
                 tableInfo.setResultMap(table.resultMap());
             }
+            tableInfo.setAutoInitResultMap(table.autoResultMap());
         } else {
             tableName = initTableNameWithDbConfig(tableName, dbConfig);
         }