Преглед на файлове

修复获取实体类信息缓存.

聂秋秋 преди 7 години
родител
ревизия
836f3b0207
променени са 1 файла, в които са добавени 18 реда и са изтрити 1 реда
  1. 18 1
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/TableInfoHelper.java

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

@@ -150,7 +150,24 @@ public class TableInfoHelper {
      * @return
      */
     public static TableInfo getTableInfo(Class<?> clazz) {
-        return TABLE_INFO_CACHE.get(ClassUtils.getUserClass(clazz).getName());
+        TableInfo tableInfo = TABLE_INFO_CACHE.get(ClassUtils.getUserClass(clazz).getName());
+        if(tableInfo!=null){
+            return tableInfo;
+        }else{
+            //尝试获取父类缓存
+            Class c = clazz;
+            while (tableInfo==null && Object.class!=c){
+                c = c.getSuperclass();
+                tableInfo = TABLE_INFO_CACHE.get(ClassUtils.getUserClass(c).getName());
+            }
+            if(tableInfo!=null){
+                TABLE_INFO_CACHE.put(ClassUtils.getUserClass(clazz).getName(),tableInfo);
+            }else{
+                //找不到了,我也很绝望呀
+                logger.warn(ClassUtils.getUserClass(clazz).getName() + "Not Found TableInfoCache.");
+            }
+        }
+        return tableInfo;
     }
 
     /**