逻辑删除通过在数据库中标记记录为“已删除”而非物理删除,来保留数据。
MyBatis-Plus 的逻辑删除功能有:

  • 查找:自动添加条件,过滤掉标记为已删除的记录。
  • 更新:防止更新已删除的记录。
  • 删除:将删除操作转换为更新操作,标记记录为已删除。

全局配置


在 application.yml 中配置:

mybatis-plus:  
	global-config:    
		db-config:
			logic-delete-field: deleted # 全局逻辑删除实体类字段名
			logic-delete-value: 1 # 逻辑已删除值。默认值为 1
			logic-not-delete-value: 0 # 逻辑未删除值。默认值为 0

单独配置


在实体类中,对应数据库表的逻辑删除字段上添加 @TableLogic 注解:

import com.baomidou.mybatisplus.annotation.TableLogic;
public class User {    
	
    @TableLogic(
    value = 0, // 逻辑未删除值。默认值为 0
    delval = 1 // 逻辑已删除值。默认值为 1
    )
    private Integer deleted;
}