逻辑删除
本文最后更新于:2024年9月8日 晚上
逻辑删除
-
逻辑删除是为了方便数据恢复和保护数据本身价值等等的一种方案,但实际就是删除。
-
如果你需要频繁查出来看就不应使用逻辑删除,而是以一个状态去表示。
-
只对自动注入的sql起效:
- 插入:不作限制。
- 查找:追加where条件过滤掉已删除数据,且使用 wrapper.entity 生成的where条件会忽略该字段。
- 更新:追加where条件防止更新到已删除数据,且使用 wrapper.entity 生成的where条件会忽略该字段。
- 删除:转变为更新。
-
例如:
- 删除:
update user set deleted=1 where id = 1 and deleted=0
- 查找:
select id,name,deleted from user where deleted=0
- 删除:
-
字段类型支持说明:
- 支持所有数据类型(推荐使用
Integer
,Boolean
,LocalDateTime
) - 如果数据库字段使用
datetime
,逻辑未删除值和已删除值支持配置为字符串null
,另一个值支持配置为函数来获取值如now()
- 支持所有数据类型(推荐使用
使用方法
- 配置
com.baomidou.mybatisplus.core.config.GlobalConfig$DbConfig
- 例: application.yml
1 |
|
- 实体类字段上加上
@TableLogic
注解。
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!