소스 검색

TableInfo过时方法兼容性调整.

聂秋荣 3 년 전
부모
커밋
b6d0200b39

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

@@ -28,6 +28,7 @@ import org.apache.ibatis.mapping.ResultFlag;
 import org.apache.ibatis.mapping.ResultMap;
 import org.apache.ibatis.mapping.ResultMapping;
 import org.apache.ibatis.reflection.Reflector;
+import org.apache.ibatis.reflection.SystemMetaObject;
 import org.apache.ibatis.session.Configuration;
 
 import java.lang.reflect.Constructor;
@@ -46,7 +47,6 @@ import static java.util.stream.Collectors.joining;
 @Data
 @Setter(AccessLevel.PACKAGE)
 @Accessors(chain = true)
-@SuppressWarnings("serial")
 public class TableInfo implements Constants {
 
     /**
@@ -189,6 +189,7 @@ public class TableInfo implements Constants {
     @Deprecated
     public TableInfo(Class<?> entityType) {
         this.entityType = entityType;
+        this.reflector = SystemMetaObject.NULL_META_OBJECT.getReflectorFactory().findForClass(entityType);
     }
 
     /**
@@ -224,6 +225,7 @@ public class TableInfo implements Constants {
         Assert.notNull(configuration, "Error: You need Initialize MybatisConfiguration !");
         this.configuration = configuration;
         this.underCamel = configuration.isMapUnderscoreToCamelCase();
+        this.reflector = configuration.getReflectorFactory().findForClass(this.entityType);
     }
 
     /**

+ 39 - 0
mybatis-plus-core/src/test/java/com/baomidou/mybatisplus/core/metadata/TableInfoTest.java

@@ -0,0 +1,39 @@
+package com.baomidou.mybatisplus.core.metadata;
+
+import org.apache.ibatis.session.Configuration;
+import org.junit.jupiter.api.Test;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+/**
+ * @author nieiqurong
+ */
+public class TableInfoTest {
+
+    static class Demo {
+
+        String name;
+
+    }
+
+    @Test
+    void testCreate() {
+        TableInfo tableInfo;
+        Configuration configuration = new Configuration();
+        configuration.setMapUnderscoreToCamelCase(true);
+        tableInfo = new TableInfo(Demo.class);
+        Demo demo = tableInfo.newInstance();
+        tableInfo.setPropertyValue(demo, "name", "test");
+        assertThat(tableInfo.getPropertyValue(demo, "name")).isEqualTo("test");
+        assertThat(tableInfo.isUnderCamel()).isFalse();
+        assertThat(tableInfo.getReflector()).isNotNull();
+        tableInfo.setConfiguration(configuration);
+        assertThat(tableInfo.isUnderCamel()).isTrue();
+        assertThat(tableInfo.getReflector()).isNotNull();
+        tableInfo = new TableInfo(configuration, Object.class);
+        assertThat(tableInfo.isUnderCamel()).isTrue();
+        assertThat(tableInfo.getReflector()).isNotNull();
+    }
+
+
+}