当前位置: 代码迷 >> 综合 >> mybatisplus id自动生成和逻辑删除和创建时间和更新时间自动填充
  详细解决方案

mybatisplus id自动生成和逻辑删除和创建时间和更新时间自动填充

热度:1   发布时间:2024-01-29 18:09:39.0

1、在实体类添加注解

@TableId(value = "id",type=IdType.ID_WORKER_STR)
private String id;@TableLogic
@ApiModelProperty(value = "逻辑删除 1(true),未删除0 (false )")
private Boolean isDeleted;@ApiModelProperty(value = "创建时间")
@TableField(fill = FieldFill.INSERT)
private Date gmtCreate;@TableField(fill = FieldFill.INSERT_UPDATE)
@ApiModelProperty(value = "更新时间")
private Date gmtModified;

 

2、配置——逻辑删除/分页

@Configuration
@MapperScan("com.atguigu.eduservice.mapper")  //mapper是操作数据的包
public class MyConfig {//逻辑删除@Beanpublic ISqlInjector sqlInjector() {return new LogicSqlInjector();}//分页@Beanpublic PaginationInterceptor paginationInterceptor() {PaginationInterceptor paginationInterceptor = new PaginationInterceptor();// 设置请求的页面大于最大页后操作, true调回到首页,false 继续请求  默认false// paginationInterceptor.setOverflow(false);// 设置最大单页限制数量,默认 500 条,-1 不受限制// paginationInterceptor.setLimit(500);// 开启 count 的 join 优化,只针对部分 left join
//        paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true));return paginationInterceptor;}
}

3、时间自动填充

 

@Component
public class MyMetaObjectHandler implements MetaObjectHandler {@Overridepublic void insertFill(MetaObject metaObject) {this.setFieldValByName("gmtCreate",new Date(),metaObject);this.setFieldValByName("gmtModified",new Date(),metaObject);}@Overridepublic void updateFill(MetaObject metaObject) {this.setFieldValByName("gmtModified",new Date(),metaObject);}
}