逻辑删除并不会真正的删除数据,而是指定一个字段,通过更改该字段的状态来实现逻辑意义上的删除
1. application.yml添加如下配置 1-删除,0-不删除
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)
2. 在逻辑删除对应字段上添加注解
/**
* 是否显示[0-不显示,1显示]
*/
@TableLogic(value = "1",delval = "0")
private Integer showStatus;
@TableLogic注解也可以根据数据库表中逻辑删除的值来对应设置,这张表使用show_status为逻辑删除字段,因为大部分数据的show_status都为1,而在上面的MybatisPlus配置中(1-删除,0-不删除)不适用表中数据,所以我们在设计逻辑删除字段时应该将大部分数据设置为默认不删除,所有就需要重新定义默认删除的值,默认逻辑未删除值value 设置为1,默认逻辑删除值delval设置为0
3. 当执行删除逻辑时,就会将待删除数据的show_status字段置0
4. 控制台打印sql,在application.yml下添加如下配置
logging:
level:
com.atguigu.gulimall: debug