Mybatis Plus公共字段自动填充功能

 

实现步骤:

1.在实体类属性上加上@TableField注解,并指定自动填充的策略

1
2
3
4
5
6
7
8
9
10
@TableField(fill = FieldFill.INSERT)//插入时填充字段
private LocalDateTime createTime;
 
@TableField(fill = FieldFill.INSERT_UPDATE)//插入、更新时填充字段
private LocalDateTime updateTime;
 
@TableField(fill = FieldFill.INSERT)//插入时填充字段
private Long createUser;<br>
@TableField(fill = FieldFill.INSERT_UPDATE)//插入、更新时填充字段
private Long updateUser;

2.按照框架要求编写元数据对象处理器,在此类中统一为公共字段赋值,此类需要实现MetaObjectHandler

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@Component
@Slf4j
public class MyMetaObjectHandler implements MetaObjectHandler {
 
    @Override
    public void insertFill(MetaObject metaObject) {
        log.info("公共字段自动填充[insert]...");
        metaObject.setValue("createTime", LocalDateTime.now());
        metaObject.setValue("createUser", LoginCheckFilter.threadLocal.get());
        metaObject.setValue("updateTime", LocalDateTime.now());
        metaObject.setValue("updateUser", LoginCheckFilter.threadLocal.get());
    }
 
    @Override
    public void updateFill(MetaObject metaObject) {
        log.info("公共字段自动填充[update]...");
        metaObject.setValue("updateTime", LocalDateTime.now());
        metaObject.setValue("updateUser", LoginCheckFilter.threadLocal.get());
    }
}

  

  

posted @   LiRang2022  阅读(106)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示