注意:通过此种方式删除数据后,实际数据还存在于数据库中,只是字段isDel值改变了,虽然如此,但是再通过MyBatis Plus查询数据的时候却会将其忽略,就好比不存在一般。
即通过逻辑删除的数据和物理删除的外在表现是一致的,只是内在机理不同罢了。
枚举自动注入
第一种方式
使用注解@EnumValue
使用方式:定义普通枚举,并在其中定义多个属性,将该注解标注于其中一个枚举属性之上,即可实现自动映射,使用枚举name传递,实际入库的却是添加了注解的属性值,查询也是如此,可以将库中数据与添加注解的属性对应,从而获取到枚举值name。
第二种方式
Mybatis Plus中定义了IEnum用来统筹管理所有的枚举类型,我们自定义的枚举只要实现IEnum接口即可,在MyBatis Plus初始化的时候,会自动在MyBatis中handler缓存中添加针对IEnum类型的处理器,我们的自定义的枚举均可使用这个处理器进行处理来实现自动映射。
步骤一:添加必要的配置
mybatis-plus.type-enums-package: com.example.springbootdemo.enums
步骤二:自定义枚举
public enum AnimalType implements IEnum {
CAT("1","猫"),DOG("2","狗"),TIGER("3","虎"),MOUSE("4","鼠"),MONKEY("5","猴"),LOAN("6","狮"),OTHER("7","其他");
private final String value;
private final String desc;
AnimalType(final String value,final String desc){
this.value=value;
this.desc = desc;
}
@Override
public Serializable getValue() {
return value;
}
public String getDesc() {
return desc;
}
}