1. 程式人生 > 其它 >springboot~mybatis-plus列舉到資料庫整型欄位

springboot~mybatis-plus列舉到資料庫整型欄位

  • 資料庫欄位為int型別
  • 實體欄位為了可讀性強,使用列舉型別

預設情況

  • 一般來說,資料庫為varchar時,你的列舉元素直接會進行轉換

欄位為整型

  • 這些如果你是mybatis-plus,可以使用如下default-enum-type-handler引數開啟@EnumValue特性,將每句的@EnumValue註釋的欄位新增到資料表字段中。

測試

  • 列舉
public enum ModuleType implements NameValueEnum {
  LOGIN(0, "登入"),
  LOGOUT(1, "登出");

  @EnumValue
  private Integer code;
  @JsonValue
  private String name;

  ModuleType(Integer code, String name) {
    this.code = code;
    this.name = name;
  }

  @Override
  public String getName() {
    return name;
  }

  @Override
  public Integer getValue() {
    return code;
  }
}

  • 實體
@Data
@Builder
public class OperatorLog {
  private String id;
  private String dataId;
  private String dataTitle;
  /**
   * 模組型別
   */
  private ModuleType moduleType;
  private String content;
  /**
   * 操作型別
   */
  private OperateType operateType;
}
  • 配置

mybatis-plus:
  default-enum-type-handler: org.apache.ibatis.type.EnumOrdinalTypeHandler
  • 結果