一、逻辑删除实现
当有些数据删除后,不需要将其在数据库中删掉,而仅仅是添加一个字段deleted来作为删除标识;
1.在application.yml文件中添加
mybatis-plus:
`global-config:
db-config:
logic-not-delete-value: 0 //代表逻辑未删除
logic-delete-value: 1` //标识逻辑已删除
2.在实体类字段中添加注解
//逻辑删除标识,0未删除,1已删除
@TableLogic
private Integer deleted;
3.测试
@Test
public void deletedById(){
int row = userMapper.deleteById(1111133333);
System.out.println("影响行数 = "+row);
}
可以看到,员工1并未在数据库中删除,只是标记为1已删除而且查询的时候也不会被查出;
二、查询中排除删除标识字段
查询的时有时候不需要显示deleted字段,查询语句中后面会带上作为条件的deleted;所以需要将其去掉
1.在实体类中的字段中添加注解
//查询的时候不显示该字段
@TableField(select = false)
private Integer deleted;
从查询语句可以看出,deleted仅是出现在了where条件中;