我正在使用 Spring MVC 和 Orika 将一些实体映射到 XML,但我面临的问题是,当我尝试在同一个实例中重用 MapperFactory 和一些新的映射器时,不仅不删除我以前的映射器注册了,但据说添加了新的之后,只在 map 方法调用中调用,这是我注册的第一个映射器。
这里有一些代码:
@Override
public void configureMapper() {
ConverterFactory converterFactory = factory.getConverterFactory();
ClassMapBuilder builder = factory.classMap(PublicProcurement.class, RequestForQuotationBody.class)
.mapNulls(false);
for (DocumentBodyMapper<RequestForQuotationBody, PublicProcurement> mapper : mappers) {
mapper.register(builder, converterFactory);
}
builder.register();
}
@Override
public void setMappers(List<DocumentBodyMapper<RequestForQuotationBody, PublicProcurement>> documentBodyMappers) {
this.mappers = documentBodyMappers;
}
所以第一次我用 {AMapper.class} 配置 MapperFactor 一个映射器列表,然后在完成创建该 xml 后,我再次调用,这次传递一个映射器列表 {BMapper.class,CMapper.class}。但是这次当我调用地图时。只有 AMapper.class 出现,所以只有关于 AMapper 的 xml 出现。
知道如何重置 MapperFactory 吗?