SpringBoot和MyBatisPlus中枚举自动转换
<dependency> <groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.2.0</version>
</dependency>
yml配置
mybatis-plus: #扫描,多个package用逗号或者分号分隔
typeEnumsPackage: io.renren.modules.*.enums
使用方法
使用枚举
@EnumValue
@Getter
public enum UserType{
BACKEND(1, "后台"),
FRONT(2, "前台"),
;
@JsonCreator
UserType(Integer val, String desc) {
this.val = val;
this.desc = desc;
}
@EnumValue
private final Integer val;
@JsonValue
private final String desc;
}
实现接口
IEnum<T>
@Getter
public enum UserType implements IEnum<Integer> {
BACKEND(1, "后台"),
FRONT(2, "前台"),
;
@JsonCreator
UserType(Integer val, String desc) {
this.val = val;
this.desc = desc;
}
private final Integer val;
@JsonValue
private final String desc;
@Override
public Integer getValue() {
return val;
}
}
三、可能存在的问题
如果数据库中使用的tinyint(1)
那么在mybatis
将会映射为boolean
,使用Integer
作为枚举类的值会映射失败,一值为Null
,解决方法是使用tinyint(4)
,因为tinyint(1)
和tinyint(4)
占用的空间是一样,故没有影响。
查考文章:https://my.oschina.net/u/3773384/blog/1802992
以上是 SpringBoot和MyBatisPlus中枚举自动转换 的全部内容, 来源链接: utcz.com/z/514034.html