映射时向 Orika MappingContext 添加外部数据
Add external data to Orika MappingContext while mapping
我想向 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);
我该怎么做?我可以动态地将数据添加到上下文吗?还是将附加数据传递给映射器的另一种方式?
解决方法很简单:
MappingContext context = new MappingContext.Factory().getContext();
context.setProperty("name", "value");
mapper.map(objA, objB, context);
我想向 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);
我该怎么做?我可以动态地将数据添加到上下文吗?还是将附加数据传递给映射器的另一种方式?
解决方法很简单:
MappingContext context = new MappingContext.Factory().getContext();
context.setProperty("name", "value");
mapper.map(objA, objB, context);