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详细教程(附图)