我们知道Mybatis的底层其实是对JavaType与数据类型做了一些转化,其基础的抽象类便是BaseTypeHandler类,而上文中提到的两种MyBatisplus内置的枚举类匹配器其实就是实现了BaseTypeHandler类,故我们也可以写一个相似的匹配器来自定义我们的枚举匹配策略 我们先看一下EnumOrdinalTypeHandler枚举匹配器的源码 /** * Copyright ...
@Data@TableName("sys_role")public class Role { /** 角色类型 */ private RoleType type;} 1. 配置扫描的枚举包路径 mybatis-plus: typeEnumsPackage: com.yanyu.spring.mybatisplus.enums 1. 从结果可以看出查询出的角色类型自动转换成了枚举ADMIN 当Mybatis-plus自带的原生方法不能满足我们的需求,我们...
如果不想继承IEnum<T>,可以通过第二种方式,就是增加一个注解的方式@EnumValue @EnumValue private Integer value; @JsonValue private String desc; 自动转换实现: 配置了Enums枚举,实体中设置了枚举类型,那么mybatis-plus如何转换的呢?重点是看这里 mybatis-plus: global-config: db-config: logic-not-delete-...
# 配置类型别名所对应的包 type-aliases-package: cabbage.pojo# 配置扫描通用枚举 type-enums-package: cabbage.pojo 而注解@EnumValue所标识的属性值会存储到数据库,相当于语句INSERT INTO t_user ( username, age, sex ) VALUES ( ?, ?, ? ) Parameters: Enum(String), 20(Integer), 1(Integer)。
@EnumValue标记的枚举类属性的类型要和数据库字段的类型对应,否则在查询数据的时候无法转化为枚举类型,并显示为null; 如果查询的时候,数据库字段的值匹配不到枚举,程序运行时并不会报错,而是显示为null; 在保存的时候,前端需要传递@JsonValue标记的枚举类属性的值,即"男/女";因为Enum的属性ordinal(int),在测试过程...
简介:在数据库操作中,枚举类型的值往往需要与数据库表中的某个字段进行映射,以便在操作中能够进行相应的转换。MyBatis Plus作为一款强大的ORM框架,提供了注解 `@EnumValue`,使开发者能够更加灵活地处理枚举值与数据库字段的映射关系,从而减少了繁琐的转换逻辑。本文将详细介绍 `@EnumValue` 注解的用法及其在持久层开...
比方说我的枚举类型定义为这样: 示例枚举(value,desc) 在储存到数据的时候,我们肯定只存value到数据库中,由于Mybatis的接口返回的是Serializable,它自己封装的添加方法是怎么转化的,我还没有找到,所以就只能自己重写一个; 在重写的时候,只需要重写setNonNullParameter这个方法就行,其他的方法在MybatisPlus中已经实现好...
角色枚举 @AllArgsConstructor@Getterpublicenum DataPermission {// 枚举类型根据范围从前往后排列,避免影响getScope// Scope 数据权限范围 : ALL(全部)、DEPT(部门)、MYSELF(自己) DATA_MANAGER("数据管理员", "DATA_MANAGER",DataScope.ALL), DATA_AUDITOR("数据审核员", "DATA_AUDITOR",DataScope...
类型:属性注解 位置:模型类中用于表示主键的属性定义上方 作用:设置当前类中主键属性的生成策略 相关属性:value设置数据库主键名称,type设置主键生成策略具体参考IdType枚举值 ID生成策略枚举值: AUTO(0):使用数据库id自增策略控制id生成 NONE(1):不设置ID生成策略 INPUT(2):用户手工输入ID ASSIGN_ID(3):雪花算法...
}/*** 通过{@linkWrapperScheme}枚举中的值属性 进行判断语句确认调用方法类型 * 如果在{@linkWrapperScheme}枚举中添加了对应的枚名称类型 * 请在此处书写对应的判断方法 * *@paramscheme {@linkWrapperScheme}枚举中对应名称的值 *@paramparameter {@linkFilterField} 注解中对应的 name 参数 ...