Orika - 仅当第三个字段与字符串匹配时才映射两个字段

wou*_*non 3 java mapping orika

我有两个要用Orika映射的字段

 @Override
    public void configure(MapperFactory factory) {
        factory.classMap(ClazzA.class, ClazzB.class)
                .byDefault()
                .field("name", "sname")
                .register();
Run Code Online (Sandbox Code Playgroud)

只有当ClazzB中的第三个字段"type"与字符串"stk"匹配时,我才想将该字段名称映射到sname中的值.

是否可以使用Orika?

ran*_*789 5

对的,这是可能的.只需在常规字段映射后添加自定义映射器即可.

    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(); 
Run Code Online (Sandbox Code Playgroud)