From 6497bcc4ca2ea913124494e903ac4cf80bd6a5b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johnny=20Miller=20=28=E9=94=BA=E4=BF=8A=29?= Date: Wed, 13 Jan 2021 15:10:10 +0800 Subject: [PATCH] perf($MyBatis): field auto fill [skip ci] --- .../entity/PermissionPersistence.java | 9 +++----- .../role/entity/RolePersistence.java | 9 +++----- .../MyBatisPlusConfiguration.java | 23 ++++++++++++++++--- .../user/entity/UserPersistence.java | 9 +++----- 4 files changed, 29 insertions(+), 21 deletions(-) diff --git a/auth-center/src/main/java/com/jmsoftware/maf/authcenter/permission/entity/PermissionPersistence.java b/auth-center/src/main/java/com/jmsoftware/maf/authcenter/permission/entity/PermissionPersistence.java index 9317e6e7..4bf12041 100644 --- a/auth-center/src/main/java/com/jmsoftware/maf/authcenter/permission/entity/PermissionPersistence.java +++ b/auth-center/src/main/java/com/jmsoftware/maf/authcenter/permission/entity/PermissionPersistence.java @@ -1,9 +1,6 @@ package com.jmsoftware.maf.authcenter.permission.entity; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.*; import lombok.Data; import java.io.Serializable; @@ -77,13 +74,13 @@ public class PermissionPersistence implements Serializable { /** * Created time */ - @TableField(value = "created_time") + @TableField(value = "created_time", fill = FieldFill.INSERT) private Date createdTime; /** * Modified time */ - @TableField(value = "modified_time") + @TableField(value = "modified_time", fill = FieldFill.INSERT_UPDATE) private Date modifiedTime; public static final String COL_ID = "id"; diff --git a/auth-center/src/main/java/com/jmsoftware/maf/authcenter/role/entity/RolePersistence.java b/auth-center/src/main/java/com/jmsoftware/maf/authcenter/role/entity/RolePersistence.java index b66223f0..087c5f80 100644 --- a/auth-center/src/main/java/com/jmsoftware/maf/authcenter/role/entity/RolePersistence.java +++ b/auth-center/src/main/java/com/jmsoftware/maf/authcenter/role/entity/RolePersistence.java @@ -1,9 +1,6 @@ package com.jmsoftware.maf.authcenter.role.entity; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.*; import lombok.Data; import java.io.Serializable; @@ -40,13 +37,13 @@ public class RolePersistence implements Serializable { /** * Created time */ - @TableField(value = "created_time") + @TableField(value = "created_time", fill = FieldFill.INSERT) private Date createdTime; /** * Modified time */ - @TableField(value = "modified_time") + @TableField(value = "modified_time", fill = FieldFill.INSERT_UPDATE) private Date modifiedTime; public static final String COL_ID = "id"; diff --git a/auth-center/src/main/java/com/jmsoftware/maf/authcenter/universal/configuration/MyBatisPlusConfiguration.java b/auth-center/src/main/java/com/jmsoftware/maf/authcenter/universal/configuration/MyBatisPlusConfiguration.java index da903176..e20a06b5 100644 --- a/auth-center/src/main/java/com/jmsoftware/maf/authcenter/universal/configuration/MyBatisPlusConfiguration.java +++ b/auth-center/src/main/java/com/jmsoftware/maf/authcenter/universal/configuration/MyBatisPlusConfiguration.java @@ -2,27 +2,32 @@ import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer; +import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.BlockAttackInnerInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; +import lombok.extern.slf4j.Slf4j; import lombok.val; +import org.apache.ibatis.reflection.MetaObject; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.transaction.annotation.EnableTransactionManagement; +import java.time.LocalDateTime; + /** *

MyBatisPlusConfiguration

*

* Change description here. - * - * TODO: migrate this configuration to `spring-boot-starter` + *

* * @author Johnny Miller (锺俊), email: johnnysviva@outlook.com * @date 2019-05-02 11:57 **/ +@Slf4j @Configuration @EnableTransactionManagement -public class MyBatisPlusConfiguration { +public class MyBatisPlusConfiguration implements MetaObjectHandler { @Bean public PaginationInnerInterceptor paginationInnerInterceptor() { val paginationInnerInterceptor = new PaginationInnerInterceptor(DbType.MYSQL); @@ -58,4 +63,16 @@ public MybatisPlusInterceptor mybatisPlusInterceptor(PaginationInnerInterceptor mybatisPlusInterceptor.addInnerInterceptor(blockAttackInnerInterceptor); return mybatisPlusInterceptor; } + + @Override + public void insertFill(MetaObject metaObject) { + log.info("Start to insert fill ...."); + this.strictInsertFill(metaObject, "createdTime", LocalDateTime.class, LocalDateTime.now()); + } + + @Override + public void updateFill(MetaObject metaObject) { + log.info("Start to update fill ...."); + this.strictUpdateFill(metaObject, "modifiedTime", LocalDateTime::now, LocalDateTime.class); + } } diff --git a/auth-center/src/main/java/com/jmsoftware/maf/authcenter/user/entity/UserPersistence.java b/auth-center/src/main/java/com/jmsoftware/maf/authcenter/user/entity/UserPersistence.java index 25fff831..7a8fb6a1 100644 --- a/auth-center/src/main/java/com/jmsoftware/maf/authcenter/user/entity/UserPersistence.java +++ b/auth-center/src/main/java/com/jmsoftware/maf/authcenter/user/entity/UserPersistence.java @@ -1,9 +1,6 @@ package com.jmsoftware.maf.authcenter.user.entity; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.*; import lombok.Data; import java.io.Serializable; @@ -85,13 +82,13 @@ public class UserPersistence implements Serializable { /** * Created time */ - @TableField(value = "created_time") + @TableField(value = "created_time", fill = FieldFill.INSERT) private Date createdTime; /** * Modified time */ - @TableField(value = "modified_time") + @TableField(value = "modified_time", fill = FieldFill.INSERT_UPDATE) private Date modifiedTime; public static final String COL_ID = "id";