MP公共字段自动填充

MP公共字段自动填充

  1. 在需要自动填充的字段上添加@TableField(fill)注解

参数:

fill

可填入的值 说明
FieldFill.INSERT 插入表时填充
FieldFill.UPDATE 更新时填充
FieldFill.INSERT_UPDATE 更新和插入表时填充
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@TableField(fill = FieldFill.INSERT)	//插入表时时填充
private LocalDateTime createTime;


@TableField(fill = FieldFill.INSERT_UPDATE) //更新和插入表时填充
private LocalDateTime updateTime;


@TableField(fill = FieldFill.INSERT) //插入表时时填充
private Long createUser;


@TableField(fill = FieldFill.INSERT_UPDATE) //更新和插入表时填充
private Long updateUser;
  1. 实现MetaObjectHandler接口, 重写insertFill()updateFill()方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@Component
public class MyMetaObjectHandle implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
//插入时填充的字段名及填充的值
metaObject.setValue("createTime", LocalDateTime.now());
metaObject.setValue("updateTime", LocalDateTime.now());
metaObject.setValue("createUser", BaseContext.getCurrentId());
metaObject.setValue("updateUser", BaseContext.getCurrentId());
}

@Override
public void updateFill(MetaObject metaObject) {
//更新时填充的字段名及填充的值
metaObject.setValue("updateTime", LocalDateTime.now());
metaObject.setValue("updateUser", BaseContext.getCurrentId());
}
}

MP公共字段自动填充
http://xwww12.github.io/2022/08/08/数据库/mysql/mybatis-plus/MP公共字段自动填充/
作者
xw
发布于
2022年8月8日
许可协议