4

有没有办法使用Orika将字段的值设置为文字或常量值?

我的意思是:

public class ObjectMapper extends ConfigurableMapper {

        protected void configure(MapperFactory factory) {
             factory.classMap(SourceClass.class, DestinationClass.class)
             .field("myField", "CONSTANT_VALUE")
             .byDefault()
             .register();
        }
}

我在文档中找不到类似的东西......

4

2 回答 2

2

根据Orika 文档的这一部分,设置文字值的唯一方法是自定义映射。例如:

public class ObjectMapper extends ConfigurableMapper {

        protected void configure(MapperFactory factory) {
             factory.classMap(SourceClass.class, DestinationClass.class)
             .byDefault()
             .customize(new CustomMapper<SourceClass, DestinationClass>() {
                @Override
                public void mapAtoB(SourceClass a, DestinationClass b, MappingContext context) {
                    b.setMyField("CONSTANT_VALUE");
                }

                // ...
            })
            .register();
        }
}
于 2016-10-05T13:33:05.313 回答
2

我找到了一个简单的解决方案

public class ObjectMapper extends ConfigurableMapper {

    protected void configure(MapperFactory factory) {
         factory.classMap(SourceClass.class, DestinationClass.class)
         .field("", "myField:{|setMyField('MY CONSTANT')}")
         .byDefault()
         .register();
    }
}

源可以是空的,你只需要填写目标,属性的名称和setter方法。

于 2018-06-22T17:21:27.060 回答