一、概述
解决了繁琐的配置,让 mybatis 优雅的使用枚举属性! 从 3.5.2 版本开始只需完成 声明通用枚举属性 即可使用。
二、配置全局枚举属性
default-enum-type-handler: com.baomidou.mybatisplus.core.handlers.MybatisEnumTypeHandler
三、案例
注意:
- @EnumValue注解:标记数据库中存储的值
- @JsonValue注解: 标记查询和返回所显示的值
创建枚举
import com.baomidou.mybatisplus.annotation.EnumValue;
import com.fasterxml.jackson.annotation.JsonValue;
import lombok.Getter;
@Getter
public enum UserStatus {
NORMAL(1, "正常"),
FREEZE(2, "冻结")
;
@EnumValue // 标记数据库中存储的值
private final int value;
@JsonValue // 标记查询和返回所显示的值
private final String desc;
UserStatus(int value, String desc) {
this.value = value;
this.desc = desc;
}
}
使用枚举
public class User {
private Integer id;
private String username;
private String password;
private String phone;
@TableField(typeHandler = JacksonTypeHandler.class)
private UserInfo info;
/**
* 使用状态:1 正常 2 冻结
*/
private UserStatus status;
private Integer balance;
private Integer deptId;
private Integer flag;
private LocalDateTime createTime;
private LocalDateTime updateTime;
}