我有两个要使用Orika映射的字段
@Override
public void configure(MapperFactory factory) {
factory.classMap(ClazzA.class, ClazzB.class)
.byDefault()
.field("name", "sname")
.register();
我只想在ClazzB中的第三个字段“类型”与字符串“stk”匹配时才将该字段名称映射到sname中的值。
是否可以使用Orika?
最佳答案
是的,有可能。只需在常规字段映射之后添加自定义映射器即可。
factory.classMap(ClazzA.class, ClazzB.class)
.field("name", "sname")
.byDefault()
.customize(new CustomMapper<ClazzA, ClazzB>() {
@Override
public void mapBtoA(ClazzB clazzB, ClazzA clazzA, MappingContext context) {
if ("stk".equals(clazzB.getType())) {
clazzA.setName(clazzB.getSName());
}
}
}
.register();