MetaObjectHandler

说明:MetaObjectHandler接口是mybatisPlus为我们提供的的一个扩展接口,我们可以利用这个接口在我们插入或者更新数据的时候,为一些字段指定默认值。实现这个需求的方法不止一种,在sql层面也可以做到,在建表的时候也可以指定默认值。

在实体类上加入@tableField注解

public class Role{

    @TableId(type = IdType.AUTO)
    private Integer id;

    private String roleName;

    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    @TableField(fill = FieldFill.UPDATE)
    private LocalDateTime updateTime;

}
  1. 创建配置类实现MetaObjectHandler接口
  2. @Log4j2
    @Component
    public class MyMetaObjectHandler implements MetaObjectHandler {
        @Override
        public void insertFill(MetaObject metaObject) {
            log.info("插入时自动填充...");
            this.strictInsertFill(metaObject,"createTime", LocalDateTime.class,LocalDateTime.now(ZoneId.of("Asia/Shanghai")));
        }
    
        @Override
        public void updateFill(MetaObject metaObject) {
            log.info("更新时自动填充...");
            this.strictInsertFill(metaObject,"updateTime", LocalDateTime.class,LocalDateTime.now(ZoneId.of("Asia/Shanghai")));
        }
    }

     

posted @ 2023-02-27 10:19  谭志宇  阅读(95)  评论(0编辑  收藏  举报