使用枚举
mp 提供了 @EnumValue 枚举注解。
枚举与数据库
枚举与 json
枚举与 spring boot
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| package com.baomidou.mybatisplus.samples.enums.enums;
import com.baomidou.mybatisplus.annotation.EnumValue;
public enum GradeEnum {
PRIMARY(1, "小学"), SECONDORY(2, "中学"), HIGH(3, "高中");
GradeEnum(int code, String descp) { this.code = code; this.descp = descp; }
@EnumValue private final int code; private final String descp;
public int getCode() { return code; }
public String getDescp() { return descp; } }
|
2. 配置文件 resources/application.yml
1 2 3 4
| mybatis-plus: type-enums-package: com.baomidou.mybatisplus.samples.enums.enums
|
JSON 序列化处理
Jackson
springboot 中
1 2 3 4
| @Bean public Jackson2ObjectMapperBuilderCustomizer customizer(){ return builder -> builder.featuresToEnable(SerializationFeature.WRITE_ENUMS_USING_TO_STRING); }
|
或者单独使用 jackson 的场景中
1 2
| ObjectMapper objectMapper = new ObjectMapper(); objectMapper.configure(SerializationFeature.WRITE_ENUMS_USING_TO_STRING, true);
|
在需要响应描述字段上或者在字段的 get 方法上添加 @JsonValue 注解即可。
Fastjson
全局处理
1 2 3 4
| FastJsonConfig config = new FastJsonConfig();
config.setSerializerFeatures(SerializerFeature.WriteEnumUsingToString); converter.setFastJsonConfig(config);
|
局部处理
1 2
| @JSONField(serialzeFeatures= SerializerFeature.WriteEnumUsingToString) private UserStatus status;
|
注解相关
com.baomidou.mybatisplus.annotation.TableField
boolean exist() default true; 默认 true 存在,false 不存在
FieldFill fill() default FieldFill.DEFAULT; 字段自动填充策略
com.baomidou.mybatisplus.annotation.TableId
表主键标识
String value() default “”; 字段值(驼峰命名方式,该值可无)
IdType type() default IdType.NONE; 主键ID
com.baomidou.mybatisplus.annotation.TableLogic
表字段逻辑处理注解(逻辑删除)
String value() default “”; 默认逻辑未删除值(该值可无、会自动获取全局配置)
String delval() default “”; 默认逻辑删除值(该值可无、会自动获取全局配置)