mybatis-plus枚举类型

参考例子代码: https://gitee.com/baomidou/mybatis-plus-samples

  1. 通常的方法进行序列化和反序列化

使用的是jackson进行序列化和反序列化

  • 将枚举序列化需要的是注解 : @JsonValue
  • 将枚举反序列化需要的注解 : @JsonCreator
  1. 采用mybatis-plus进行枚举的序列化和反序列:
  • 设置mybatis-plus进行枚举的转换:
# mybatis相关配置
mybatis-plus:
  #  configLocation
  mapper-locations: classpath*:mapper/**/*.xml
  check-config-location: false
  # 该执行器类型会复用预处理语句(PreparedStatement)
  executor-type: reuse
  # 以下的是原生的mybatis的配置信息
  configuration:
    # 列名驼峰转换
    map-underscore-to-camel-case: true
    cache-enabled: true
    aggressive-lazy-loading: true
    auto-mapping-unknown-column-behavior: warning
    # 此处设置序列化的转换器,是需要定义一个方法: getValue
    default-enum-type-handler: com.baomidou.mybatisplus.extension.handlers.EnumTypeHandler

  • 枚举类举例如下:
@Getter
@AllArgsConstructor
public enum ProductCategory implements IEnum<Long> {
    /**
     * 产品类型
     */
    WOOD(1L, "WOOD", "方木"),
    REBAR(2L, "REBAR", "钢筋"),
    CEMENT(3L, "CEMENT", "水泥"),
    TEMPLATE(4L, "TEMPLATE", "模板"),
    MIXED(5L, "MIXED", "混合版"),
    DIGGING_MACHINE(6L, "DIGGING_MACHINE", "挖机"),
    CRANE(7L, "CRANE", "吊车"),
    FORKLIFT(8L, "FORKLIFT", "铲车"),
    CONCRETE(9L, "CONCRETE", "混凝土");

    private Long id;

    private String name;

    private String description;


    @Override
    public Long getValue() {
        return id;
    }
}
最后更新: 6/29/2019, 7:56:34 PM
本文浏览量