我们在 mybatis 的 EnumOrdinalTypeHandler(基于枚举常量序号)
和 EnumTypeHandler(基于枚举常量名)
之外
提供了更加灵活的枚举处理器 MybatisEnumTypeHandler(基于枚举常量属性)
只需要对枚举进行声明,即可实现枚举的自动映射
未进行声明的枚举则根据 mybatis
的defaultEnumTypeHandler
的默认值EnumTypeHandler
来进行映射
枚举声明
声明该枚举使用 MybatisEnumTypeHandler(基于枚举常量属性)
进行映射
方式一:注解标记
枚举属性使用 @EnumValue
注解,指定枚举值在数据库中存储的实际值。支持枚举类中的任意字段,如序号或编码。
方式二:实现接口
实现 IEnum
接口,实现 getValue
方法,指定枚举值在数据库中存储的实际值。支持枚举类中的任意字段,如序号或编码。
未声明枚举
未声明的枚举将使用 mybatis
的 defaultEnumTypeHandler
的默认值 EnumTypeHandler
进行映射
可以通过修改全局配置来变更,不过这对上面步骤声明的枚举无效
修改全局 defaultEnumTypeHandler
yml 配置文件中配置:
或者通过自定义配置类:
或者其他
号外参考: 如何序列化枚举值为前端返回值
Jackson
一、重写 toString 方法
Spring Boot
Jackson 独立使用
在枚举中重写 toString 方法,以上两种方式任选其一。
二、注解处理
Fastjson
一、重写 toString 方法
全局处理方式
局部处理方式
在枚举中重写 toString 方法,以上两种方式任选其一。
通过以上步骤,你可以优雅地在 MyBatis-Plus 中使用枚举属性,并且能够方便地将枚举值序列化为前端所需的格式。
© 2016-2024 Baomidou™. All Rights Reserved.
Power by Astro Starlight |
Sponsored by JetBrains
渝ICP备2021000141号-1 |
渝公网安备50011302222097