Mybatis-plus是一款优秀的Mybatis扩展插件,它为Mybatis提供了许多实用的功能和注解,其中之一就是@EnumValue注解。@EnumValue注解主要用于将数据库中的枚举类型字段映射到Java枚举类型,方便我们在Java代码中处理枚举类型的数据。在Mybatis-plus中,使用@EnumValue注解可以将数据库中的枚举类型字段映射到Java枚举类型,同时也...
在MyBatis Plus 中,@EnumValue 注解通常用于处理枚举类型的字段映射。它允许开发者自定义枚举值在数据库中的存储和读取方式,从而提供更加灵活和直观的枚举映射机制。 1. @EnumValue 注解的作用 @EnumValue 注解的主要作用是定义枚举类型字段在数据库中的存储值。默认情况下,MyBatis Plus 会将枚举的 name() 方法返...
@EnumValue:标注该字段是数据库里的字段@JsonValue:标注该字段要开启自定义序列化返回值 toString:具体的返回值; 测试代码 /** * 保存数据库测试 */@Testpublicvoidmybatis_enum_ref_add_test(){ ResourceDTO dto =newResourceDTO(); dto.setBizId(1L); dto.setBizType(BizType.NOTICE); dto.setType(1);...
先看下原来的调用层级:类型转换处理类调用CompositeEnumTypeHandler,CompositeEnumTypeHandler再根据当前枚举类是否使用了@EnumValue注解,如果使用了就调用MybatisEnumTypeHandler,如果没使用,就调用的EnumTypeHandler。 这里其实知道原因过后就简单了,因为知道getObject这个方法需要调用只有一个参数的方法。那么这里我们只需要重新定...
第一步,要用Enum就要先创建一个,我这里随便写了个,要注意的是两个注解 @EnumValue 这个是mybatisplus的注解,代表如果使用Enum作为实体类中字段的类型,那会找到对应Enum中标识为@EnumValue的字段存入数据库 @JsonValue 这个是jackson的注解,是把此注解标记的值返回给前端。如果用gson或者fastjson也会有对应的方式,此...
private DemoStatusEnum status; } 1. 2. 3. 4. 5. 6. 7. 8. 9. DemoStatusEnum枚举定义 我们采用了官方提到的两种方式的第一种:即实现IEnum<T> /** * 支持枚举值的两种方式 * 1、实现 IEnum of T * 2、注解 @EnumValue,不用实现 IEnum of T ...
实体类 @TableName("mytest")@DatapublicclassMyTest{@TableId(type = IdType.AUTO)privateLong id;/** * 使用mybatisPlus的EnumValue注解后就可以把这个定义为枚举类型 */privateSexEnum sex;publicMyTest(){ }publicMyTest(Long id, SexEnum sex){this.id = id;this.sex = sex; } } ...
使用枚举字段值:在枚举类中的字段上使用@EnumValue注解,指定字段值与数据库字段值的映射关系。 使用枚举的ordinal值:在枚举类中的字段上使用@EnumValue注解,不传递属性值,默认映射为枚举的ordinal值。 四、高级用法: 除了基本用法外,@EnumValue注解还支持一些高级用法,以满足更加复杂的枚举值映射需求。
#mybatis-plus.configuration.default-enum-type-handler=org.apache.ibatis.type.EnumOrdinalTypeHandler AI代码助手复制代码 第三步: pojo中的sex属性设置为枚举SexEnum; @ApiModelProperty(value ="性别")@TableField("sex") private SexEnum sex; AI代码助手复制代码 ...
说一下上面的@EnumValue注解,@EnumValue用来标记数据库存的值 mybatis原生默认是以枚举的名称: Enum.name()作为默认值,即User类中定义的属性 private SexEnum sex; 默认向数据库存的时候会将SexEnum.MAN.name()的值存入数据库(String类型),使用@EnumValue注解标识SexEnum类中的code属性后,保存数据库时就会取值cod...