mybatis-plus 物理删除和逻辑删除
物理删除:在删除的时候之间数据从数据库中删除逻辑删除:从逻辑层面控制删除,通常会在表里面添加一个逻辑删除的字段,比如:enabled,is_delete,数据默认是有效的(如值为1),当用户删除时将数据修改(UPDATE)为 0,查询的时候只查询whereenabled=1mybatis-plus默认1为删除,0为未删除1.添加逻辑删除字段private Integer enabled; //标识
·
物理删除:在删除的时候之间数据从数据库中删除
逻辑删除:从逻辑层面控制删除,通常会在表里面添加一个逻辑删除的字段,比如:enabled,is_delete,数据默认是有效的(如值为1),当用户删除时将数据修改(UPDATE)为 0,查询的时候只查询where enabled=1
mybatis-plus默认1为删除,0为未删除
1.添加逻辑删除字段
private Integer enabled; //标识逻辑删除的字段
2.注解(局部)逻辑删除配置
实体类字段中加入如下字段(表中也有相应字段)及注解
@TableLogic //逻辑删除标识注解
private Integer enabled; //标识逻辑删除的字段
测试:
@Test
void logicDelete(){
employeeService.removeById(9);
}
并没有执行真正的删除语句,同时使用的是默认的,删除为1,未删除为0![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S6pqEUMe-1639757734141)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20211217235319616.png)]](https://i-blog.csdnimg.cn/blog_migrate/f708148548f716f241a60b77b7f0aa9b.png)
自定义已删除和未删除值:
@TableLogic(value = "1",delval = "0") //逻辑删除标识注解,并设置已删除和未删除时字段值
private Integer enabled; //标识逻辑删除的字段
再次测试:和我们自定义的符合
当使用mybatis-plus的通用查询方法时,它会自动加上where条件判断是否为已删除(逻辑删除)的数据
配置(全局)逻辑删除配置(实体类的对应删除字段不再需要添加@TableLogic注解)
mybatis-plus:
global-config:
db-config:
id-type: auto #设置主键自动生成策略(全局id生成策略)
logic-delete-field: enabled #逻辑删除字段
logic-delete-value: 0 #已删除字段
logic-not-delete-value: 1 #未删除字段
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)