yuxiaobin преди 7 години
родител
ревизия
d815c5fba1

+ 11 - 6
mybatis-plus-core/src/test/java/com/baomidou/mybatisplus/test/h2/H2MetaObjAndVersionAndOptLockTest.java

@@ -72,18 +72,20 @@ public class H2MetaObjAndVersionAndOptLockTest extends H2Test {
         user.setAge(91);
         user.setPrice(BigDecimal.TEN);
         user.setDesc("asdf");
-        user.setTestType(1);
+        user.setTestType(null);
         user.setVersion(1);
         userMapper.insertAllColumn(user);
 
         H2UserVersionAndLogicDeleteEntity userDB = userMapper.selectById(id);
-        Assert.assertEquals(null, userDB.getTestDate());
+        Assert.assertEquals("lastUpdateDt should be null for insert()", null, userDB.getLastUpdatedDt());
+        Assert.assertNotNull("testType should not be null for insert() due to insertFill()", userDB.getTestType());
 
         userDB.setName("991");
         userMapper.updateById(userDB);
 
         userDB = userMapper.selectById(id);
         Assert.assertEquals("991", userDB.getName());
+        assertUpdateFill(userDB.getLastUpdatedDt());
     }
 
     @Test
@@ -100,6 +102,7 @@ public class H2MetaObjAndVersionAndOptLockTest extends H2Test {
         userMapper.insertAllColumn(user);
 
         H2UserVersionAndLogicDeleteEntity userDB = userMapper.selectById(id);
+        Assert.assertEquals("testType will only be updated by insertFill() when testType is null ", 1, userDB.getTestType().intValue());
 
         H2UserVersionAndLogicDeleteEntity updUser = new H2UserVersionAndLogicDeleteEntity();
         updUser.setName("999");
@@ -108,6 +111,7 @@ public class H2MetaObjAndVersionAndOptLockTest extends H2Test {
 
         userDB = userMapper.selectById(id);
         Assert.assertEquals("999", userDB.getName());
+        assertUpdateFill(userDB.getLastUpdatedDt());
     }
 
     @Test
@@ -141,9 +145,9 @@ public class H2MetaObjAndVersionAndOptLockTest extends H2Test {
         Date versionDate = userDB.getTestDate();
         System.out.println("after update: testDate=" + versionDate);
         String versionDateStr = sdf.format(versionDate);
-        Assert.assertEquals(sdf.format(new Date()), versionDateStr);
+        Assert.assertEquals("@version field:testDate should be updated to current sysdate", sdf.format(new Date()), versionDateStr);
 
-        Assert.assertNotEquals(originalDateVersionStr, versionDateStr);
+        Assert.assertNotEquals("@version field should be updated", originalDateVersionStr, versionDateStr);
 
     }
 
@@ -179,7 +183,8 @@ public class H2MetaObjAndVersionAndOptLockTest extends H2Test {
         Date versionDate = userDB.getTestDate();
         System.out.println("after update: testDate=" + versionDate);
         String versionDateStr = sdf.format(versionDate);
-        Assert.assertEquals(sdf.format(new Date()), versionDateStr);
+        Assert.assertEquals("@version field:testDate should be updated to current sysdate", sdf.format(new Date()), versionDateStr);
+        assertUpdateFill(userDB.getLastUpdatedDt());
     }
 
 
@@ -245,7 +250,7 @@ public class H2MetaObjAndVersionAndOptLockTest extends H2Test {
         dbUser = userMapper.selectById(id);
         Assert.assertNotNull(dbUser);
         Assert.assertEquals("updateMy", dbUser.getName());
-        Assert.assertEquals(1, user.getVersion().intValue());
+        Assert.assertEquals("自定义update需要自己控制version", 1, user.getVersion().intValue());
     }
 
 

+ 0 - 8
mybatis-plus-core/src/test/java/com/baomidou/mybatisplus/test/h2/H2MetaObjectHandlerTest.java

@@ -77,14 +77,6 @@ public class H2MetaObjectHandlerTest extends H2Test {
         assertUpdateFill(userDB.getLastUpdatedDt());
     }
 
-    private void assertUpdateFill(Date lastUpdatedDt) {
-        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH");
-        System.out.println("after update: testDate=" + lastUpdatedDt);
-        String versionDateStr = sdf.format(lastUpdatedDt);
-        //MyMetaObjectHandler.updateFill() : set lastUpdatedDt=currentTimestamp
-        Assert.assertEquals(sdf.format(new Date()), versionDateStr);//before update: lastUpdatedDt=currentTimestamp-1day
-    }
-
     @Test
     public void testMetaObjectHandlerNullInsert4Update() {
         H2UserMetaObj user = new H2UserMetaObj();

+ 12 - 0
mybatis-plus-core/src/test/java/com/baomidou/mybatisplus/test/h2/H2Test.java

@@ -5,6 +5,10 @@ import java.io.FileReader;
 import java.io.IOException;
 import java.sql.SQLException;
 import java.sql.Statement;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+import org.junit.Assert;
 
 /**
  * <p>
@@ -42,4 +46,12 @@ public class H2Test {
         }
         return builder.toString();
     }
+
+    protected void assertUpdateFill(Date lastUpdatedDt) {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH");
+        System.out.println("after update: testDate=" + lastUpdatedDt);
+        String versionDateStr = sdf.format(lastUpdatedDt);
+        //MyMetaObjectHandler.updateFill() : set lastUpdatedDt=currentTimestamp
+        Assert.assertEquals("lastUpdateDt will be updated by H2MetaObjectHandler.updateFill()",sdf.format(new Date()), versionDateStr);//before update: lastUpdatedDt=currentTimestamp-1day
+    }
 }

+ 4 - 3
mybatis-plus-core/src/test/java/com/baomidou/mybatisplus/test/h2/H2UserDateVersionTest.java

@@ -77,6 +77,7 @@ public class H2UserDateVersionTest extends H2Test {
 
         userDB = userMapper.selectById(id);
         Assert.assertEquals("991", userDB.getName());
+        Assert.assertEquals(null, userDB.getTestDate());
     }
 
 
@@ -135,9 +136,9 @@ public class H2UserDateVersionTest extends H2Test {
         Date versionDate = userDB.getTestDate();
         System.out.println("after update: testDate=" + versionDate);
         String versionDateStr = sdf.format(versionDate);
-        Assert.assertEquals(sdf.format(new Date()), versionDateStr);
+        Assert.assertEquals("@version field testDate should be updated to current sysdate", sdf.format(new Date()), versionDateStr);
 
-        Assert.assertNotEquals(originalDateVersionStr, versionDateStr);
+        Assert.assertNotEquals("@version field testDate should be updated to current sysdate", originalDateVersionStr, versionDateStr);
 
     }
 
@@ -173,7 +174,7 @@ public class H2UserDateVersionTest extends H2Test {
         Date versionDate = userDB.getTestDate();
         System.out.println("after update: testDate=" + versionDate);
         String versionDateStr = sdf.format(versionDate);
-        Assert.assertEquals(sdf.format(new Date()), versionDateStr);
+        Assert.assertEquals("@version field testDate should be updated to current sysdate", sdf.format(new Date()), versionDateStr);
     }
 
 

+ 1 - 0
mybatis-plus-core/src/test/java/com/baomidou/mybatisplus/test/h2/entity/SuSuperEntity.java

@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.enums.FieldFill;
 /**
  * <p>
  * 多层集成测试
+ * github #170
  * </p>
  *
  * @author yuxiaobin

+ 9 - 9
mybatis-plus-core/src/test/java/com/baomidou/mybatisplus/test/h2/entity/persistent/H2UserVersionAndLogicDeleteEntity.java

@@ -20,11 +20,11 @@ import java.math.BigDecimal;
 import java.util.Date;
 
 import com.baomidou.mybatisplus.annotations.TableField;
-import com.baomidou.mybatisplus.annotations.TableId;
 import com.baomidou.mybatisplus.annotations.TableLogic;
 import com.baomidou.mybatisplus.annotations.TableName;
 import com.baomidou.mybatisplus.annotations.Version;
 import com.baomidou.mybatisplus.enums.FieldStrategy;
+import com.baomidou.mybatisplus.test.h2.entity.SuperEntity;
 
 import lombok.Data;
 import lombok.experimental.Accessors;
@@ -40,15 +40,15 @@ import lombok.experimental.Accessors;
 @Data
 @Accessors(chain = true)
 @TableName("h2user")
-public class H2UserVersionAndLogicDeleteEntity implements Serializable {
+public class H2UserVersionAndLogicDeleteEntity extends SuperEntity implements Serializable {
 
     /* 表字段注解,false 表中不存在的字段,可无该注解 默认 true */
     @TableField(exist = false)
     private static final long serialVersionUID = 1L;
 
     /* 主键ID 注解,value 字段名,type 用户输入ID */
-    @TableId(value = "test_id")
-    private Long id;
+//    @TableId(value = "test_id")
+//    private Long id;
 
     /* 测试忽略验证 */
     private String name;
@@ -71,8 +71,8 @@ public class H2UserVersionAndLogicDeleteEntity implements Serializable {
     @Version
     private Date testDate;
 
-    @TableField("last_updated_dt")
-    private Date lastUpdatedDt;
+//    @TableField(value = "last_updated_dt", fill = FieldFill.UPDATE)
+//    private Date lastUpdatedDt;
 
     public H2UserVersionAndLogicDeleteEntity() {
 
@@ -92,17 +92,17 @@ public class H2UserVersionAndLogicDeleteEntity implements Serializable {
     }
 
     public H2UserVersionAndLogicDeleteEntity(Long id, String name) {
-        this.id = id;
+        this.setId(id);
         this.name = name;
     }
 
     public H2UserVersionAndLogicDeleteEntity(Long id, Integer age) {
-        this.id = id;
+        this.setId(id);
         this.age = age;
     }
 
     public H2UserVersionAndLogicDeleteEntity(Long id, String name, Integer age, Integer testType) {
-        this.id = id;
+        this.setId(id);
         this.name = name;
         this.age = age;
         this.testType = testType;