代码之家  ›  专栏  ›  技术社区  ›  Thermech Gandalf

映射时将外部数据添加到Orika MappingContext

  •  4
  • Thermech Gandalf  · 技术社区  · 10 年前

    我想向MappingContext添加一些外部属性(不在我要映射的对象中的属性)。

    这里是我想要完成的:

        MapperFactory mapperFactory = new DefaultMapperFactory.Builder().build();
        mapperFactory.classMap(ObjA.class, ObjB.class).customize(new CustomMapper<ObjA, ObjB>() {
            @Override
            public void mapAtoB(ObjA objA, ObjB objB, MappingContext context) {
                objB.setName((String) context.getProperty("name"));
            }
        }).byDefault().register();
        MapperFacade mapper = mapperFactory.getMapperFacade();
    
        ObjA objA = new ObjA();
        ObjB objB = new ObjB();
    
        MappingContext context = new MappingContext(); //PROBLEME IS HERE: MappingContext is a abstract class
        context.setProperty("name", "Some information not in objA nor in objB");
        mapper.map(objA, objB, context);
    

    我该怎么做?我可以动态地将数据添加到上下文中吗?还是将其他数据传递给mapper的另一种方式?

    1 回复  |  直到 10 年前
        1
  •  9
  •   Thermech Gandalf    10 年前

    解决方案很简单:

    MappingContext context = new MappingContext.Factory().getContext();
    context.setProperty("name", "value");
    mapper.map(objA, objB, context);
    
    推荐文章