背景
我的项目采纳 mapstruct
做对象属性拷贝,我的项目的多个实体类有雷同的属性,比方 createTime
,在配置映射时如果都用疏忽某个映射的数据,或则批改映射属性名,那每个@Mappings
里都要配置:
@Mappings(value = {@Mapping(target = "id", ignore = true),
@Mapping(source = "createTime", target = "insertTime")
})
是否能够将这样雷同的配置抽取进去?
解决方案
官网文档:MapStruct 1.4.2.Final Reference Guide
代码
公共配置:
@Retention(RetentionPolicy.CLASS)
@Mappings(value = {@Mapping(target = "id", ignore = true),
@Mapping(source = "createTime", target = "insertTime")
})
public @interface CommonEntityMapping {}
理论应用:
@Mappings(value = {@Mapping(source = "filed1", target = "field2")
})
@CommonEntityMapping
MyEntity convert(MyModel myModel);
另:我的项目刚开始应用的 mapstruct
版本是 1.2.0-Final
,不反对在 类
上注解 @Mappings
,降级到1.4.2-Final
后反对了。