逻辑删除通过在数据库中标记记录为“已删除”而非物理删除,来保留数据。
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;
}