1:给数据库的属性上添加一个字段作为是否删除的标志
2:修改相应的实体类,添加@TableLogic注解,指定删除和未删除的标志
package com.dongmu.mybatisplus.pojo;
import com.baomidou.mybatisplus.annotation.*;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
@TableId(type = IdType.AUTO)
private Long id;
private String name;
private Integer age;
private String email;
@Version
private Integer version;
@TableField(fill = FieldFill.INSERT)
private Date create_time;
@TableField(fill = FieldFill.UPDATE)
private Date update_time;
@TableLogic(value = "0",delval = "1")
//0代表未删除,1代表删除了
private Integer deleted;
}
测试:
可以发现他实际上执行的是DML(数据库操纵语句)语句,只是修改了是否删除这个属性的值,即deleted这个字段的值。并没有真正删除数据。
这个时候我们执行查询,也不会查询到已经被逻辑删除的数据: