mybatisplus 逻辑删除
所属分类 mybatis
浏览量 133
逻辑删除 在表中添加一个表示删除状态的字段,并使用@TableLogic注解标记该字段
@TableLogic
private Integer deleted;
这个字段通常是一个整数类型(如Integer),其中0表示未删除,1表示已删除
MybatisPlus 3.3.0版本之后,可以 配置设置逻辑删除字段名、逻辑已删除值和逻辑未删除值
mybatis-plus:
global-config:
db-config:
logic-delete-field: deleted # 全局逻辑删除的实体字段名
logic-delete-value: 1 # 逻辑已删除值,默认为1
logic-not-delete-value: 0 # 逻辑未删除值,默认为0
这样配置后,MybatisPlus会在执行删除操作时自动处理逻辑删除字段,只对未被标记为已删除的数据进行操作。
@TableLogic注解只对自动注入的 sql 生效
插入(insert) 不作限制
查找(select)
@TableLogic 注解将会在 select 语句的 where 条件添加条件,过滤掉已删除数据,且使用 wrapper.entity 生成的 where 条件会忽略该字段
SELECT user_id,name,sex,age,deleted FROM user WHERE user_id=1 AND deleted='0'
更新(update)
@TableLogic 注解将会在 update 语句的 where 条件后追加条件,防止更新到已删除数据,且使用 wrapper.entity 生成的 where条件会忽略该字段
UPDATE user SET deleted='1' WHERE user_id=1 AND deleted='0'
删除(delete)
@TableLogic 注解会将 delete 语句转变为 update 语句
update user set deleted=1 where id = 1 and deleted=0
xxxMapper.deleteById(id);
delete 自动转成 update
UPDATE xxx SET valid=0 WHERE id=? AND valid=1
上一篇
下一篇
几何常见解题方法
Java8 Stream API 实例 实现 list 分组
tan15度计算
经典儿童英语诗歌
勾股定理几种证明方法
内网映射方案 lanproxy