mybatisplus里有使用枚举进行存储 以及返回信息的功能即
@Getter
public enum PublishStatusEnum implements IBaseEnum {
@JsonEnumDefaultValue
PUBLISHED(1, "已发布"),
UNPUBLISHED(2, "未发布");
@EnumValue
private Integer code;
@JsonValue
private String message;
PublishStatusEnum(Integer code, String message) {
this.code = code;
this.message = message;
}
@JsonCreator
public static PublishStatusEnum getByCode(Integer code) {
for (PublishStatusEnum item : PublishStatusEnum.values()) {
if (item.getCode().equals(code)) {
return item;
}
}
return null;
}
}
其中@JsonValue代表了Json化后的类型,比如返回给前端的数据,@EnumValue是存储到数据库的数据按这个枚举就是1,而前端传入的数据则需要是PUBLISHED,或者UNPUBLISHED,这样后端用enum属性接收时候才能转化为对饮枚举,而有遇到一种属性List<PublishStatusEnum>,在存入库时会出错 需要在对应入库entity上加上autoResultMap=true,这样出入库字段才能自动转换