当前位置: 首页 > news >正文

【Java】通过Mybatis Plus自带的方式,实现公共字段自动填充。

通过Mybatis Plus自带的方式,实现公共字段自动填充。

第一步,创建一个公共字段类,加上对应注解。

@DatapublicclassBaseEntityimplementsSerializable{@SerialprivatestaticfinallongserialVersionUID=1L;@TableField(value="create_at",fill=FieldFill.INSERT)privateLocalDateTimecreateAt;@TableField(value="create_by",fill=FieldFill.INSERT)privateStringcreateBy;@TableField(value="update_at",fill=FieldFill.INSERT_UPDATE)privateLocalDateTimeupdateAt;@TableField(value="update_by",fill=FieldFill.INSERT_UPDATE)privateStringupdateBy;}

第二步,创建一个类实现MetaObjectHandler接口,重写注解对应实现方法,并且加上@Component注解纳入IOC容器管理。

@ComponentpublicclassMyMetaObjectHandlerimplementsMetaObjectHandler{@OverridepublicvoidinsertFill(MetaObjectmetaObject){StringloginId=StpUtil.isLogin()?StpUtil.getLoginIdAsString():null;this.strictInsertFill(metaObject,"createAt",LocalDateTime::now,LocalDateTime.class);this.strictInsertFill(metaObject,"createBy",()->loginId,String.class);this.strictInsertFill(metaObject,"updateAt",LocalDateTime::now,LocalDateTime.class);this.strictInsertFill(metaObject,"updateBy",()->loginId,String.class);}@OverridepublicvoidupdateFill(MetaObjectmetaObject){StringloginId=StpUtil.isLogin()?StpUtil.getLoginIdAsString():null;this.strictUpdateFill(metaObject,"updateAt",LocalDateTime::now,LocalDateTime.class);this.strictInsertFill(metaObject,"updateBy",()->loginId,String.class);}}

第三步,实体类继承公共字段类,实现调用Mybatis Plus自带的插入或修改方法时,公共字段自动填充。

@Data@EqualsAndHashCode(callSuper=true)@TableName("user")@Schema(title="用户实体",description="系统用户信息,包含登录认证和基本信息")publicclassUserextendsBaseEntity{@SerialprivatestaticfinallongserialVersionUID=1L;/** * 主键ID */@Schema(title="用户ID")@TableId(value="id",type=IdType.AUTO)privateIntegerid;/** * 用户登录邮箱 */@Schema(title="邮箱")@TableField("email")privateStringemail;/** * BCrypt密码哈希 */@Schema(title="密码")@TableField("password")privateStringpassword;/** * 用户昵称 */@Schema(title="昵称")@TableField("nickname")privateStringnickname;/** * 用户角色 */@Schema(title="角色")@TableField("role")privateStringrole;/** * 头像URL */@Schema(title="头像URL")@TableField("avatar_url")privateStringavatarUrl;}
http://www.jsqmd.com/news/615628/

相关文章:

  • Google 修改账户归属地
  • AI编程实战:从零到一搭建全栈项目胺
  • 国内半导体展哪家好?盘点2026年实力半导体展为企业搭建桥梁 - 品牌2026
  • Spring Cloud进阶--分布式权限校验OAuth眯
  • 潘多拉魔盒上的封条:当AI强到连“造物主”都感到恐惧
  • 基于MATLAB/Simulink的纯电动汽车模型( (包括驾驶员模型,电机模型,电池模型,传动模型,纵向动力学模型)
  • 2026膏药公司TOP5推荐:纯中药膏药/老黑膏/热熔胶膏药/黑膏药/膏药/选择指南 - 优质品牌商家
  • AI时代的算法思维:大经典排序学习弥
  • linux文件,IO,缓存,动\静函数库
  • 低代码选型:为什么「开源技术栈」对企业长期发展更有利?
  • 汉中买品牌瓷砖优选东鹏瓷砖(陕西万禾建设工程有限公司汉中分公司) - 一个呆呆
  • 粉紫系超人气月兔铃仙仁
  • vLLM-v0.17.1技术解析:流水线并行在vLLM中的实现与通信开销
  • 中国半导体展哪家好?2026年中国半导体展助你高效参展观展 - 品牌2026
  • 免疫治疗新视角:CD47 (分化簇47) 信号通路机制与药物研发技术综述
  • FastAPI子应用挂载:别再让root_path坑你一夜卤
  • 国内半导体展会哪家好?全产业链对接平台,助力芯片国产化新突破 - 品牌2026
  • 世界第一个开源可商用 .NET Office 转 PDF 工具/库 - MiniPdf淌
  • 麦橘超然(majicmixRealistic_v7 AI大模型)
  • 别再用临时表了!PHP大文件CSV/Excel导入性能提升370%的7步重构法(附内存监控截图)
  • 【51 单片机入门到进阶】08 入门:51单片机定时器0/1使用详解
  • CD49d (整合素α4) 靶点深度解析:分子机制、临床药物及研发趋势
  • 普通人也能轻松掌握!5个技巧让你玩转AI大模型,从入门到精通的实用指南!
  • GLM全自动开发企业知识库--对接第三方OA数据
  • 2026年4月高压热水清洗机场景化精选推荐:电动高压清洗机、船用高压清洗机、超高压清洗机、除锈高压清洗机、高压冷水清洗机选择指南 - 优质品牌商家
  • microDS3231:轻量级嵌入式RTC驱动库设计与实践
  • 2025年IEEE TITS,基于片段式知识迁移的多任务容量受限车辆路径问题,深度解析+性能实测
  • OpenClaw夜间自动化:Gemma-3-12b-it监控网站更新并邮件提醒
  • OpenClaw自动化测试实践:gemma-3-12b-it驱动Python脚本批量执行
  • 2026年AI热点:阿里新模型领跑行业