背景
项目采用mapstruct
做对象属性拷贝,项目的多个实体类有相同的属性,比如createTime
,在配置映射时如果都用忽略某个映射的数据,或则修改映射属性名,那每个@Mappings
里都要配置:
@Mappings(value = https://www.it610.com/article/{@Mapping(target ="id", ignore = true),@Mapping(source = "createTime", target = "insertTime")})
是否可以将这样相同的配置抽取出来?
解决方案
官方文档:MapStruct 1.4.2.Final Reference Guide
文章图片
代码
公共配置:
@Retention(RetentionPolicy.CLASS)
@Mappings(value = https://www.it610.com/article/{
@Mapping(target ="id", ignore = true),
@Mapping(source = "createTime", target = "insertTime")
})
public @interface CommonEntityMapping {}
实际使用:
@Mappings(value = https://www.it610.com/article/{
@Mapping(source ="filed1", target = "field2")
})
@CommonEntityMapping
MyEntity convert(MyModel myModel);
【【小知识】mapstruct通用配置】另:项目刚开始使用的
mapstruct
版本是1.2.0-Final
,不支持在类
上注解@Mappings
,升级到1.4.2-Final
后支持了。推荐阅读
- Java|Java基础——数组
- 人工智能|干货!人体姿态估计与运动预测
- java简介|Java是什么(Java能用来干什么?)
- Java|规范的打印日志
- Linux|109 个实用 shell 脚本
- 程序员|【高级Java架构师系统学习】毕业一年萌新的Java大厂面经,最新整理
- Spring注解驱动第十讲--@Autowired使用
- SqlServer|sql server的UPDLOCK、HOLDLOCK试验
- jvm|【JVM】JVM08(java内存模型解析[JMM])
- 技术|为参加2021年蓝桥杯Java软件开发大学B组细心整理常见基础知识、搜索和常用算法解析例题(持续更新...)