springboot~MyBatisPlus中使用@TableField完成字段自动填充
2022/6/29 23:23:06
本文主要是介绍springboot~MyBatisPlus中使用@TableField完成字段自动填充,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
字段注解 @TableField中的参数fill
com.baomidou.mybatisplus.annotations.TableField
-
exist
是否为数据库表字段( 默认 true 存在,false 不存在 ) -
strategy
字段验证 ( 默认 非 null 判断,查看 com.baomidou.mybatisplus.enums.FieldStrategy ) -
fill
字段填充标记 ( FieldFill, 配合自动填充使用 )
字段填充策略 FieldFill
DEFAULT 默认不处理 INSERT 插入填充字段 UPDATE 更新填充字段 INSERT_UPDATE 插入和更新填充字段
使用
@Data @EqualsAndHashCode(callSuper=false) @TableName("sys_user") public class SysUserEntity extends BaseEntity { private static final long serialVersionUID = 1L; /** * 用户名 */ private String username; /** * 密码 */ private String password; /** * 创建者 */ @TableField(fill = FieldFill.INSERT) private Long creator; /** * 创建时间 */ @TableField(fill = FieldFill.INSERT) private Date createDate; /** * 更新者 */ @TableField(fill = FieldFill.INSERT_UPDATE) private Long updater; /** * 更新时间 */ @TableField(fill = FieldFill.INSERT_UPDATE) private Date updateDate; }
添加hander对它进行处理
/** * 公共字段,自动填充值 * * @author Mark sunlightcs@gmail.com */ @Component public class FieldMetaObjectHandler implements MetaObjectHandler { private final static String CREATE_DATE = "createDate"; private final static String CREATOR = "creator"; private final static String UPDATE_DATE = "updateDate"; private final static String UPDATER = "updater"; @Override public void insertFill(MetaObject metaObject) { UserDetail user = SecurityUser.getUser(); Date date = new Date(); //创建者 strictInsertFill(metaObject, CREATOR, Long.class, user.getId()); //创建时间 strictInsertFill(metaObject, CREATE_DATE, Date.class, date); //更新者 strictInsertFill(metaObject, UPDATER, Long.class, user.getId()); //更新时间 strictInsertFill(metaObject, UPDATE_DATE, Date.class, date); } @Override public void updateFill(MetaObject metaObject) { //更新者 strictUpdateFill(metaObject, UPDATER, Long.class, SecurityUser.getUserId()); //更新时间 strictUpdateFill(metaObject, UPDATE_DATE, Date.class, new Date()); }
当然,我们自己写拦截器,去拦截mybatis最终的insert,update方法也是可以实现相同的功能的。
这篇关于springboot~MyBatisPlus中使用@TableField完成字段自动填充的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?
- 2024-05-09这种运行结果里的10.100000001,怎么能最快改成10.1?
- 2024-05-09企业src漏洞挖掘-有意思的命令执行