admin 管理员组

文章数量: 1086019


2024年6月10日发(作者:湖南企业网站建设制作)

mybatisplus 枚举类型转化

mybatis-plus实现了对“实体类指定了枚举类型,想查询时

返回的是枚举值而非value值”,“插入数据时,实体赋值的

是枚举类型,想入库时插入对应的value值”,“不想写其他

的handler处理程序,希望能够自动处理”。

mybatis-plus对于上述的诉求都可以满足,简单的处理方案

是:

* 1、实现 IEnum of T* 2、注解 @EnumValue,不用

实现 IEnum of T

具体的官方文档为

定义一个简单实体

先定义一个示例实体类,我们在实体Demo中用到了

DemoStatusEnum

/**

* 实体类

*/

@Data

@TableName("demo")

public class Demo extends Model {

@TableField("status")

private DemoStatusEnum status;

}

DemoStatusEnum枚举定义

我们采用了官方提到的两种方式的第一种:即实现IEnum

/**

* 支持枚举值的两种方式

* 1、实现 IEnum of T

* 2、注解 @EnumValue,不用实现 IEnum of T

*/

@Getter

public enum DemoStatusEnum implements IEnum {

DEFAULT(0, "default"),

NORMAL(1, "normal"),

LOCKED(2, "locked");

DemoStatusEnum(Integer value, String desc) {

= value;

= desc;

}

private Integer value;

private String desc;

@Override

public Integer getValue() {

return ;

}

}

如果不想继承IEnum,可以通过第二种方式,就是增加

一个注解的方式@EnumValue

@EnumValue

private Integer value;

@JsonValue

private String desc;


本文标签: 实体类 实体 类型 方式 处理