Mybatis-Plus自动填充失效原因和解决方案

本文讲述了在使用Mybatis-Plus时遇到的自动填充公共字段失效的问题,包括创建时间和修改时间等。作者通过排查发现是由于多数据源配置导致的,解决方案是补充特定的MetaObjectHandler配置。此外,文中还列举了一些常见的自动填充失效原因。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

今天在公司无聊闲来无事,就想找点事做,想起来之前有个服务有个bug,就是Mybatis-Plus在做增删改的时候创建时间和修改时间这些公共的字段没有自动填充,于是我就开始找bug了。。。

问题

在这里插入图片描述

从图片中大家可以清楚看到一条sql有4个字段的值是null

正是公共字段:

  • creationDate 创建时间
  • createdBy 创建人
  • lastUpdateDate 更新时间
  • lastUpdateBy 更新人

需要注意的是在触发自动填充之前是要在公共字段中配置枚举类的

    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime creationDate;
    
    @TableField(fill = FieldFill.INSERT)
    private String createdBy;
    
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime lastUpdateDate;
    
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String lastUpdateBy;

配置这些什么意思想必没有必要解释了吧,直接看代码注释吧

public enum FieldFill {
    /**
     * 默认不处理
     */
    DEFAULT,
    /**
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值