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

使用方法

  1. 使用枚举@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;

    }

  2. 实现接口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

回到顶部