MyBatis-Plus标签@TableField之fill自动填充方式
更新时间:2022年06月17日 10:52:42 作者:weixin_46084802
这篇文章主要介绍了MyBatis-Plus标签@TableField之fill自动填充方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
@TableField之fill自动填充
mybatis-plus中
TableField映射非主键字段,value映射字段名,exist表示是否为数据库字段,select表示是否查询该字段,fill表示是否自动填充
实体类
@Data public class User { @TableId(type = IdType.NONE) private Long id; private String userName; private String passWord; @TableField(fill = FieldFill.INSERT) private Date createTime; @TableField(fill = FieldFill.INSERT_UPDATE) private Date updateTime; }
自动填充处理器
@Component public class MyMetaObjectHandler implements MetaObjectHandler { @Override public void insertFill(MetaObject metaObject) { this.setFieldValByName("createTime",new Date(),metaObject); this.setFieldValByName("updateTime",new Date(),metaObject); } @Override public void updateFill(MetaObject metaObject) { this.setFieldValByName("updateTime",new Date(),metaObject); } }
MyBatis-Plus自动填充
mybatis-plus 自动填充公共字段
直接上代码
首先我们要实现mybatis-plus的MetaObjectHandler接口,代码如下:
/** * @USER WSF * @DATE 2020/8/10 13:41 **/ @SpringBootConfiguration public class MetaObjectConfig implements MetaObjectHandler { @Override public void insertFill(MetaObject metaObject) { //拿到类是否有此字段 boolean hasGetter = metaObject.hasGetter("createDate"); if (hasGetter) { // this.strictInsertFill(metaObject,"字段名对应你的实体类的字段名",String.class,"Value"); this.strictInsertFill(metaObject,"createDate", LocalDateTime.class,LocalDateTime.now()); } } @Override public void updateFill(MetaObject metaObject) { Object upDateTime = getFieldValByName("upDateTime", metaObject); if (upDateTime == null) { this.strictUpdateFill(metaObject,"upDate",LocalDateTime.class,LocalDateTime.now()); } } }
实体类
@Data @TableName("t_user") public class User { @TableId(type = IdType.AUTO) private Integer id; @TableField("user_name") private String username; @TableField("pass_word") private String password; /** * 如果要实现自动填充则加上 * fill = FieldFill.INSERT新增时自动填充 * fill = fill = FieldFill.INSERT_UPDATE新增和修改都自动填充 * fill = FieldFill.DEFAULT 删除时自动填充 */ @TableField(value = "crate_date",fill = FieldFill.INSERT) private LocalDateTime createDate; //新增时间 @TableField(value = "up_name",fill = FieldFill.UPDATE) private String upName; //更新人 // ................... }
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
springboot 如何解决yml没有spring的小叶子标志问题
这篇文章主要介绍了springboot 如何解决yml没有spring的小叶子标志问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-03-03springboot整合vue2-uploader实现文件分片上传、秒传、断点续传功能
对于大文件的处理,无论是用户端还是服务端,如果一次性进行读取发送、接收都是不可取,很容易导致内存问题,下面这篇文章主要给大家介绍了关于springboot整合vue2-uploader实现文件分片上传、秒传、断点续传功能的相关资料,需要的朋友可以参考下2023-06-06Java线程池ForkJoinPool(工作窃取算法)的使用
Fork就是把一个大任务切分为若干个子任务并行地执行,Join就是合并这些子任务的执行结果,最后得到这个大任务的结果。Fork/Join 框架使用的是工作窃取算法。本文主要介绍了ForkJoinPool的使用,需要的可以参考一下2022-11-11Java二维码登录流程实现代码(包含短地址生成,含部分代码)
近年来,二维码的使用越来越风生水起,本篇文章主要介绍了Java二维码登录流程实现代码,其中包含短地址生成,有兴趣的可以了解一下。2016-12-12
最新评论