MybatisPlus配置逻辑删除

发布时间 2023-12-20 13:11:20作者: ccblblog

1、步骤 1: 配置逻辑删除的信息

全局配置

mybatis-plus:
  global-config:
    db-config:
      logic-delete-field: flag # 全局逻辑删除的实体字段名(since 3.3.0,配置后可以忽略不配置步骤2)
      logic-delete-value: 1 # 逻辑已删除值(默认为 1)
      logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)

单个实体配置
实体类字段上加上@TableLogic

public @interface TableLogic {
    /**
     * 默认逻辑未删除值(该值可无、会自动获取全局配置)
     */
    String value() default "";
    /**
     * 默认逻辑删除值(该值可无、会自动获取全局配置)
     */
    String delval() default "";
}

例如

@TableLogic(value="1") 表示逻辑不删除
private Integer deleted;

@TableLogic(delval="1") 表示逻辑删除
private Integer deleted;

2、如果需要配置逻辑删除字段

@Data
@TableName("pms_category")
public class CategoryEntity implements Serializable {
    private static final long serialVersionUID = 1L;
    
    /**
     * 分类id
     */
    @TableId
    private Long catId;
    /**
     * 分类名称
     */
    private String name;
    /**
     * 父分类id
     */
    private Long parentCid;
    /**
     * 层级
     */
    private Integer catLevel;
    /**
     * 是否显示[0-不显示,1显示]
     */
    @TableLogic(value = "1")
    private Integer showStatus; //表示此字段的字为逻辑删除字段,删除表示0,不删除表示1
    /**
     * 排序
     */
    private Integer sort;
    /**
     * 图标地址
     */
    private String icon;
    /**
     * 计量单位
     */
    private String productUnit;
    /**
     * 商品数量
     */
    private Integer productCount;
    @TableField(exist = false)
    private List<CategoryEntity> children;
}