ModelMapper Provider在映射的第一级属性上被忽略

时间:2015-07-21 20:25:13

标签: modelmapper

我已经在ModelMapper转换中成功使用了Provider,但我偶然发现了一个奇怪的情况。我注意到提供商只被考虑用于超过"第一级"转型,例如:  我有两个层次结构: 1)TipoConsultarProcessoResposta,TipoProcessoJudicial和TipoDocumento 2)ConsultarProcessoResposta,ProcessoJudicial和Documento TipoConsultarProcessoResposta有一个TipoProcessoJudicial,而TipoProcessoJudicial又有一个TipoDocumento列表,第二个层次结构重新包含第一个层次结构。 我正在从第一个层次结构转换为第二个层次结构,并且提供程序在TipoDocumento到Documento转换时工作正常,但是它被TipoProcessoJudicial转换为ProcessoJudicial时被忽略。

以下是代码的相关部分:

    modelMapper = new ModelMapper();
    modelMapper.getConfiguration().setMatchingStrategy(STRICT);
    modelMapper.addMappings(new DocumentoPropertyMap()).setProvider(documentoProvider);
    modelMapper.addMappings(new ProcessoJudicialPropertyMap()).setProvider(processoJudicialProvider);

    ConsultarProcessoResposta resposta = modelMapper.map(tipoConsultarProcessoResposta, ConsultarProcessoResposta.class);

DocumentoPropertyMap extends PropertyMap<TipoDocumento, Documento> and ProcessoJudicialPropertyMap extends PropertyMap<TipoProcessoJudicial, ProcessoJudicial>.

问题是正在调用DocumentoProvider但是没有调用ProcessoJudicialProvider。 ModelMapper尝试调用失败的全局提供程序,并通过构造函数进行实例化。

0 个答案:

没有答案