MybatisPlus固定字段自定义填充
MybatisPlus固定字段自定义填充 在开发过程中,数据库字段有一些表中需要填入重复的字段例如:insertTime、updateTime、insertUser、updateUser、等等… 每个表对应写add和update服务时需要将这些固定字段重复填入,操作繁琐且代码冗余,MybatisPlus很好的解决了这个问题。话不多说,上代码: 配置类:
@Component
@Slf4j
public class MyMetaObjecthandler implements MetaObjectHandler {
          
   
    /**
     * 插入操作,自动填充
     * @param metaObject
     */
    @Override
    public void insertFill(MetaObject metaObject) {
          
   
        log.info("公共字段自动填充[insert]...");
        log.info(metaObject.toString());
        metaObject.setValue("createTime", LocalDateTime.now());
        metaObject.setValue("updateTime",LocalDateTime.now());
        metaObject.setValue("createUser",BaseContext.getCurrentId());
        metaObject.setValue("updateUser",BaseContext.getCurrentId());
    }
    /**
     * 更新操作,自动填充
     * @param metaObject
     */
    @Override
    public void updateFill(MetaObject metaObject) {
          
   
        log.info("公共字段自动填充[update]...");
        log.info(metaObject.toString());
        long id = Thread.currentThread().getId();
        log.info("线程id为:{}",id);
        metaObject.setValue("updateTime",LocalDateTime.now());
        metaObject.setValue("updateUser",BaseContext.getCurrentId());
    }
} 
写好配置类后,需要在实体类字段上加上注解: 分别对应insert、update, 实体类中无注解则不会填充
//创建时间 @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;
ok,至此功能实现,大家去实施效果吧
上一篇:
			            Python 安装包管理工具 pip 
			          
			          下一篇:
			            Linux安装JDK详细教程(附图) 
			          
			        
