瀏覽代碼

判断是否加载通用 method 回到原来的地方

miemie 6 年之前
父節點
當前提交
bb097eccfb

+ 3 - 1
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/MybatisMapperAnnotationBuilder.java

@@ -118,7 +118,9 @@ public class MybatisMapperAnnotationBuilder extends MapperAnnotationBuilder {
                 }
             }
             // TODO 注入 CURD 动态 SQL , 放在在最后, because 可能会有人会用注解重写sql
-            GlobalConfigUtils.getSqlInjector(configuration).inspectInject(assistant, type);
+            if (GlobalConfigUtils.isSupperMapperChildren(configuration, type)) {
+                GlobalConfigUtils.getSqlInjector(configuration).inspectInject(assistant, type);
+            }
         }
         parsePendingMethods();
     }

+ 2 - 4
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/injector/AbstractSqlInjector.java

@@ -49,7 +49,7 @@ public abstract class AbstractSqlInjector implements ISqlInjector {
             String className = mapperClass.toString();
             Set<String> mapperRegistryCache = GlobalConfigUtils.getMapperRegistryCache(builderAssistant.getConfiguration());
             if (!mapperRegistryCache.contains(className)) {
-                List<AbstractMethod> methodList = this.getMethodList(builderAssistant, mapperClass);
+                List<AbstractMethod> methodList = this.getMethodList();
                 if (CollectionUtils.isNotEmpty(methodList)) {
                     TableInfo tableInfo = TableInfoHelper.initTableInfo(builderAssistant, modelClass);
                     // 循环注入自定义方法
@@ -67,11 +67,9 @@ public abstract class AbstractSqlInjector implements ISqlInjector {
      * 获取 注入的方法
      * </p>
      *
-     * @param builderAssistant mybatis MapperBuilderAssistant
-     * @param mapperClass      mapper class
      * @return 注入的方法集合
      */
-    public abstract List<AbstractMethod> getMethodList(MapperBuilderAssistant builderAssistant, Class<?> mapperClass);
+    public abstract List<AbstractMethod> getMethodList();
 
     /**
      * 提取泛型模型,多泛型的时候请将泛型T放在第一位

+ 20 - 25
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/injector/DefaultSqlInjector.java

@@ -16,8 +16,6 @@
 package com.baomidou.mybatisplus.core.injector;
 
 import com.baomidou.mybatisplus.core.injector.methods.*;
-import com.baomidou.mybatisplus.core.toolkit.GlobalConfigUtils;
-import org.apache.ibatis.builder.MapperBuilderAssistant;
 
 import java.util.List;
 import java.util.stream.Stream;
@@ -34,28 +32,25 @@ import static java.util.stream.Collectors.toList;
 public class DefaultSqlInjector extends AbstractSqlInjector {
 
     @Override
-    public List<AbstractMethod> getMethodList(MapperBuilderAssistant builderAssistant, Class<?> mapperClass) {
-        if (GlobalConfigUtils.getSuperMapperClass(builderAssistant.getConfiguration()).isAssignableFrom(mapperClass)) {
-            return Stream.of(
-                new Insert(),
-                new Delete(),
-                new DeleteByMap(),
-                new DeleteById(),
-                new DeleteBatchByIds(),
-                new Update(),
-                new UpdateById(),
-                new SelectById(),
-                new SelectBatchByIds(),
-                new SelectByMap(),
-                new SelectOne(),
-                new SelectCount(),
-                new SelectMaps(),
-                new SelectMapsPage(),
-                new SelectObjs(),
-                new SelectList(),
-                new SelectPage()
-            ).collect(toList());
-        }
-        return null;
+    public List<AbstractMethod> getMethodList() {
+        return Stream.of(
+            new Insert(),
+            new Delete(),
+            new DeleteByMap(),
+            new DeleteById(),
+            new DeleteBatchByIds(),
+            new Update(),
+            new UpdateById(),
+            new SelectById(),
+            new SelectBatchByIds(),
+            new SelectByMap(),
+            new SelectOne(),
+            new SelectCount(),
+            new SelectMaps(),
+            new SelectMapsPage(),
+            new SelectObjs(),
+            new SelectList(),
+            new SelectPage()
+        ).collect(toList());
     }
 }

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

@@ -101,6 +101,10 @@ public class GlobalConfigUtils {
         return getGlobalConfig(configuration).getSuperMapperClass();
     }
 
+    public static boolean isSupperMapperChildren(Configuration configuration, Class<?> mapperClass) {
+        return getGlobalConfig(configuration).getSuperMapperClass().isAssignableFrom(mapperClass);
+    }
+
     public static Set<String> getMapperRegistryCache(Configuration configuration) {
         return getGlobalConfig(configuration).getMapperRegistryCache();
     }