Browse Source

日常优化

miemie 4 years ago
parent
commit
64608d2846

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

@@ -74,7 +74,7 @@ public class TableInfoHelper {
      * @return 数据库表反射信息
      */
     public static TableInfo getTableInfo(Class<?> clazz) {
-        if (clazz == null || ReflectionKit.isPrimitiveOrWrapper(clazz) || clazz == String.class) {
+        if (clazz == null || ReflectionKit.isPrimitiveOrWrapper(clazz) || clazz == String.class || clazz.isInterface()) {
             return null;
         }
         // https://github.com/baomidou/mybatis-plus/issues/299

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

@@ -82,6 +82,7 @@ public final class ClassUtils {
      * @return 如果是代理的class,返回父 class,否则返回自身
      */
     public static Class<?> getUserClass(Class<?> clazz) {
+        Assert.notNull(clazz, "Class must not be null");
         return isProxy(clazz) ? clazz.getSuperclass() : clazz;
     }
 
@@ -94,7 +95,7 @@ public final class ClassUtils {
      * @return 返回对象的 user class
      */
     public static Class<?> getUserClass(Object object) {
-        Assert.notNull(object, "Error: Instance must not be null");
+        Assert.notNull(object, "Instance must not be null");
         return getUserClass(object.getClass());
     }
 
@@ -119,7 +120,7 @@ public final class ClassUtils {
             throw ExceptionUtils.mpe("实例化对象时出现错误,请尝试给 %s 添加无参的构造方法", e, clazz.getName());
         }
     }
-    
+
     /**
      * 实例化对象.
      *
@@ -132,7 +133,7 @@ public final class ClassUtils {
     public static <T> T newInstance(String clazzName) {
         return (T) newInstance(toClassConfident(clazzName));
     }
-    
+
 
     /**
      * <p>
@@ -181,7 +182,7 @@ public final class ClassUtils {
         int lastDotIndex = fqClassName.lastIndexOf(PACKAGE_SEPARATOR);
         return (lastDotIndex != -1 ? fqClassName.substring(0, lastDotIndex) : "");
     }
-    
+
     /**
      * Return the default ClassLoader to use: typically the thread context
      * ClassLoader, if available; the ClassLoader that loaded the ClassUtils
@@ -219,5 +220,4 @@ public final class ClassUtils {
         }
         return cl;
     }
-    
 }

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

@@ -49,6 +49,7 @@ public class GlobalConfigUtils {
      * @param clazz 实体类
      */
     public static SqlSessionFactory currentSessionFactory(Class<?> clazz) {
+        Assert.notNull(clazz, "Class must not be null");
         TableInfo tableInfo = TableInfoHelper.getTableInfo(clazz);
         Assert.notNull(tableInfo, ClassUtils.getUserClass(clazz).getName() + " Not Found TableInfoCache.");
         return getGlobalConfig(tableInfo.getConfiguration()).getSqlSessionFactory();

+ 6 - 0
mybatis-plus-core/src/test/java/com/baomidou/mybatisplus/test/metadata/TableInfoHelperTest.java

@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.annotation.Version;
 import com.baomidou.mybatisplus.core.MybatisConfiguration;
 import com.baomidou.mybatisplus.core.config.GlobalConfig;
 import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
+import com.baomidou.mybatisplus.core.mapper.Mapper;
 import com.baomidou.mybatisplus.core.metadata.TableFieldInfo;
 import com.baomidou.mybatisplus.core.metadata.TableInfo;
 import com.baomidou.mybatisplus.core.metadata.TableInfoHelper;
@@ -212,6 +213,11 @@ class TableInfoHelperTest {
         assertThat(tableInfo.getTableName()).isEqualTo("ttt_xxx");
     }
 
+    @Test
+    void getTableInfoInterface() {
+        TableInfoHelper.getTableInfo(Mapper.class);
+    }
+
     @Data
     @TableName(value = "xxx", keepGlobalPrefix = true)
     private static class Table2 {