mybatis 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);
}
逻辑删除操作就到这里,下面是自动填充的实现
#自动填充类配置
@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在新增和更新时都可以使用
}
在调用新增操作时会自动插入delete=0的值