逻辑删除
wenking 12/13/2023
对于某些重要的数据,用户进行删除操作后将无法恢复(或恢复成本很高),此时我们设计表的时候应该不能进行物理删除, 需要使用逻辑删除,定期维护表数据(确认已经不需要恢复,物理删除)
# 逻辑删除注解
如需使用逻辑删除,只需在实体类某个字段上加上@TableLogic
注解即可
@TableName(value ="t_order_return_reason")
@Data
public class OrderReturnReason implements Serializable {
/**
*
*/
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* 退货原因
*/
@TableField(value = "name")
private String name;
/**
* 逻辑删除
*/
@TableField(value = "del")
private Integer del;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 逻辑删除全局配置
如果每个字段都指定注解@TableLogic
,未免有点太过繁琐,mybatis-plus提供了逻辑删除的全局配置,我们只需在设计表
的适合,将表名的逻辑删除字段都设置为统一的名称即可,mybatis-plus在进行删除操作会自动拦截字段,如果表中有该字段,
则进行更新操作(逻辑删除),没有,则进行物理删除(delete操作)
mybatis-plus:
mapper-locations:
- classpath:mapper/*.xml
- classpath:dao/*.xml
global-config:
db-config:
logic-delete-field: del # 指定逻辑删除字段
logic-delete-value: 1 # 指定字段上哪个值代表删除
logic-not-delete-value: 0 # 指定字段上哪个值代表为删除
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9