mybatisplus的逻辑删除问题怎么解决
更新时间:2023-10-30MyBatis Plus 简介
MyBatis Plus(以下简称MP)是一个强大的 MyBatis 增强工具,简化了 MyBatis 操作,提供了常用的 CRUD(增/删/改/查)和分页插件。MP的逻辑删除问题主要是出现在删除数据时,并未真正删除,而是进行了标记,用于标识该数据已被删除,但仍然保留在数据库中。
MP逻辑删除功能的使用
MP的逻辑删除功能默认是关闭的,需要在实体类中添加@TableLogic注解,开启逻辑删除功能。
public class User { private Long id; private String name; private Integer age; private Integer deleted; // 逻辑删除标志位 // getter/setter } // 开启逻辑删除 @TableLogic(delval = "1", value = "0") private Integer deleted;
MP逻辑删除功能的实现方式
MP的逻辑删除功能实现是通过SQL解析器来实现的。MySqlParser和DruidParser两种解析器都支持逻辑删除,使用时需要在配置文件中开启。
MP逻辑删除功能的配置
在 application.properties 或 application.yml 中添加如下配置项:
# 开启 MP 逻辑删除 mybatis-plus.global-config.db-config.logic-delete-value=1 mybatis-plus.global-config.db-config.logic-not-delete-value=0
总结
通过MyBatis Plus提供的@TableLogic注解和SQL解析器,MP逻辑删除功能可以轻松实现。在使用时需要开启相应配置,并在实体类中添加@TableLogic注解。有了逻辑删除功能,可以在删除数据时标记该数据已被删除,并且不会真正删除数据,从而实现数据不丢失的同时,对数据进行实时应用。