mybatis新增操作自动添加逻辑删除值(自动填充))

230 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

batis plus之逻辑删除

  • 删除配置 mybatis-plus:
    global-config:
    sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector #3.11版本之前需要加上
    logic-delete-value: 1
    logic-not-delete-value: 0\

  • 体类添加@TableLogic注解 @ApiModelProperty(value = “逻辑删除”)
    @TableLogic //逻辑删除标识注解
    @TableField(select = false,fill = FieldFill.INSERT) //查询时不查找此字段和自动填充
    @JsonIgnore//忽略
    private Integer deleted;\

之后调用mybatisplus封装好的deleteById方法
@Test
public void deleteById(){
int rows = userMapper.deleteById(1094592041087729666L);
System.out.println(“影响行数” + rows);
}

image.png

逻辑删除操作就到这里,下面是自动填充的实现
#自动填充类配置

@Component
public class AutoFillConfig implements MetaObjectHandler{
@Override
public void insertFill(MetaObject metaObject) {
	setFieldValByName("deleted", 0, metaObject);//对应实体类中的属性名称
}

@Override
public void updateFill(MetaObject metaObject) {
	//更新时自动填充值,版本不同,调用的API方法有所改变,这里也可以是setUpdateValByName(...)
	//setFieldValByName在新增和更新时都可以使用
}