MapStructPlus 1.2.2 版本发布,增加枚举自动转换


当需要进行枚举转换时(例如枚举转换为编码值,或者又编码转换为枚举),可以在目标枚举添加 @AutoEnumMapper 注解, 增加该注解后,在任意类型中需要转换该枚举时都可以自动转换。

使用该注解需要注意:当前注解必须有一个可以保证唯一的字段,并在使用当前注解时,将该字段名,添加到注解提供的 value 属性中。

还有就是注解和使用注解的类,要在同一个模块中

例如:

  • 商品状态枚举(Goods
@Getter
@AllArgsConstructor
@AutoEnumMapper("state")
public enum GoodsStateEnum {
ENABLED(1, "启用"),
DISABLED(0, "禁用");

private final Integer state;
private final String desc;

}
在当前枚举中添加注解   @AutoEnumMapper,且指定唯一字段为   state
  • 商品类(Goods
@Data
@AutoMapper(target = GoodsVo.class, reverseConvertGenerate = false)
public class Goods {

private GoodsStateEnum state;

}
  • 商品VO对象(GoodsVo
@Data
public class GoodsVo {

private Integer state;

}
  • 测试类
@Test
public void enumMapTest() {
final GoodsVo goodsVo = converter.convert(goods, GoodsVo.class);
System.out.println(goodsVo);
Assert.equals(goodsVo.getState(), goods.getState().getState());

final Goods goods2 = converter.convert(goodsVo, Goods.class);
System.out.println(goods2);
Assert.equals(goods2.getState(), GoodsStateEnum.ENABLED);
}

相關推薦

2024-01-08

并强化了部分功能,使 Java 类型转换更加便捷、优雅。 MapStructPlus官网 更新日志 兼容内部类转换 示例: @Data @AutoMapper(target = Car.InnerClass.class) public class InnerClassTarget {     private String&nbs

2023-04-26

MapStructPlus 1.2.3 版本现已发布,具体更新内容如下: MapStruct 版本由 1.5.3.Final 升级为 1.5.5.Final 增加自定义 ConvertMapperAdapter 和 MapConvertMapperAdapter 类名和包名的功能,可以参考配置文档 生成的转换接口,自动接入自定义转换

2024-03-18

并强化了部分功能,使 Java 类型转换更加便捷、优雅。 MapStructPlus官网 此次迎来了一次较大版本的更新,更新日志如下: 优化复杂对象转换逻辑,占用元空间更小!性能更快! 此版本针对于复杂对象的自动转换逻辑,

2023-06-18

支持 问题描述 一段时间以来,有好几位朋友反馈过 MapStructPlus 在使用时,修改了类,启动会报错,但重新执行 mvn clean compile 又恢复了正常。 就是这么一个莫名其妙的问题,最近终于想到了原因! 原因 首先,该问题出现

2023-11-18

基于 redis 的产生特定规则的业务主键)、加密存储、数据版本校验 提供了公共属性赋值 (创建人、修改人、创建时间、修改时间、租户)、扩展类型处理等 提供了多租户统一过滤和赋值、提供了数据权限参数带入和越权校验

2023-06-14

EasyRelation 1.1.1 发布,新版本更新日志: 更新 MapStructPlus 版本 1.2.1 --> 1.2.5 添加自动关联数据功能 当想要对一个方法的结果自动关联相关数据时,可以在方法上面增加 @AutoRelation 注解, 框架会对其方法返回的结

2023-09-29

v1.2.8 (2023-9-28) ✨ 新特性 在线用户 :记录在线用户,支持强退 登录日志 :记录用户登录日志,包含登录异常 日志管理 :记录用户操作日志,系统正常异常日志 工具增强 :增加UserInfoHelper管理当前登录用户信息 权限验

2022-08-25

PhpStorm 2022.3 路线图已发布,该版本的首要任务是在多个层面上提高 IDE 的稳定性和性能,包括减少 UI 冻结、加快编辑器中的高亮显示等。 以下是该版本的主要发力点: 性能 PHP 8.2 支持 PHP 8.2 预计将于 11 月底公开发布,PhpStor

2023-04-24

本次正式版本更新,主要是企业微信模块增加了大量接口,包括企业互联相关接口,以及会议相关接口等,并修复了一些问题;小程序模块则主要增加了新版自定义交易组件的一些接口,修复若干bug;微信支付模块则主要是补充

2023-07-18

大家好啊,GoFrame框架今天发布了v2.5.0正式版本啦!👏👏👏👏 本次版本主要是对已有功能组件以及开发工具上的改进工作。其中,开发工具新增了gf gen ctrl命令,以规范化定义、开发API接口,增加控制器、SDK的代码生成提高开

2022-08-11

Visual Studio 2022 17.3 正式发布,新版本带来了不少微软此前承诺的新功能,如 .NET MAUI GA 工具、Azure Container 应用程序等;以及在开发者社区中建议的新功能。 Visual Studio 2022 v17.3 更新内容如下: MAUI 工作负荷 GA 生成 MAUI/Blazor C

2023-08-13

档:更新视频教程的文档链接 文档:添加 SpringBoot 最低版本的说明文档,感谢 @王帅 文档:Seata 分布式事务的相关文档,感谢 @life 文档:增加了使用gradle构建时的文档说明,感谢 @CloudPlayer 文档:增加了在Kotlin中

2022-06-27

目前已经成长为一套全功能的交易程序开发框架。 3.2.0 版本更新内容如下: 新增 添加广州期货交易所枚举值字段GFEX 新增CTP期权(ETF)穿透式测试接口vnpy_sopttest 新增Currency.CAD(加元)枚举值 新增Exchange.TSE(多伦多交

2023-04-19

Mybatis-Flex 是一个优雅的 Mybatis 增强框架,它非常轻量、同时拥有极高的性能与灵活性。我们可以轻松的使用 Mybaits-Flex 链接任何数据库,其内置的 QueryWrapper 帮助我们极大的减少了 SQL 编写的工作的同时,减少出错的可能性。