插入或更新数据时,有三个值需要设置
逻辑删除
is_deleted,它可以在数据里设置默认值为零,就无需手动设置了。
创建时间
createTime,使用自动填充功能
更新时间
updateTime,使用自动填充功能
@Data
public class BaseEntity implements Serializable {
@Schema(description = "主键")
@TableId(value = "id", type = IdType.AUTO)
private Long id;
@JsonIgnore
@Schema(description = "创建时间")
//插入时填充时间信息
@TableField(value = "create_time",fill = FieldFill.INSERT)
private Date createTime;
@JsonIgnore
@Schema(description = "更新时间")
//更新时填充时间信息
@TableField(value = "update_time" ,fill = FieldFill.UPDATE)
private Date updateTime;
@JsonIgnore
@TableLogic
@Schema(description = "逻辑删除")
@TableField("is_deleted")
private Byte isDeleted;
}
建立一个配置类实现MetaObjectHandler实现insertFill、updateFill方法的重写,内容就是自动填充的内容
注意加注解@Component加入IOC容器
配置自动填充的内容,具体配置如下
在common模块下创建com.atguigu.lease.common.mybatisplus.MybatisMetaObjectHandler
类,内容如下:
@Component
public class MybatisMetaObjectHandler implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
this.strictInsertFill(metaObject, "createTime", Date.class, new Date());
}
@Override
public void updateFill(MetaObject metaObject) {
this.strictUpdateFill(metaObject, "updateTime", Date.class, new Date());
}
}
在做完上述配置后,当写入数据时,Mybatis-Plus会自动将实体对象的create_time
字段填充为当前时间,当更新数据时,则会自动将实体对象的update_time
字段填充为当前时间。
推荐阅读:
linux yum install报错已加载插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was
尚硅谷尚庭公寓
Mybatis-Plus更新策略修改
在SpringMVC中接收枚举类型参数
minIO在windows下设置用户名和密码、固定端口
阿里云短信验证码服务
《尚庭公寓》162集确认租约按钮没反应
SpringBoot定时任务
jkson时间格式设置
SpringBoot方法启动新的线程异步执行的注解
行动消除疑虑