将源接口映射到目标对象的ModelMapper错误

时间:2018-11-16 15:34:26

标签: java modelmapper

我有一个接口IConditionalOrder:

iOS (Unified API): OxyPlot.Xamarin.Forms.Platform.iOS.PlotViewRenderer.Init();
Android: OxyPlot.Xamarin.Forms.Platform.Android.PlotViewRenderer.Init();
Universal Windows: OxyPlot.Xamarin.Forms.Platform.UWP.PlotViewRenderer.Init();
Windows Phone: OxyPlot.Xamarin.Forms.Platform.WP8.PlotViewRenderer.Init();

实现接口IConditionalOrder的dto:

public interface IConditionalOrder

String getMessageWaiting();

另一个dto“目的地”

public class ConditionalOrderDTO implements IConditionalOrder
//new field
private String originalMessage;

@Override
public String getMessageWaiting()
return "some string";

public String getOriginalMessage()
return originalMessage;

以及我正在进行映射的服务:

public class OrderDestination{
private String message;
//getter and setter
}

我遇到以下错误:

  

org.modelmapper.ConfigurationException:ModelMapper配置   错误:

     

1)目标属性   com.persistence.adapter.OrderDestination.setMessage()   匹配多个源属性层次结构:

     

com.persistence.adapter.model.ConditionalOrderDTO.getMessageWaiting()     com.persistence.adapter.model.ConditionalOrderDTO.getOriginalMessage()

我可以仅自动映射接口的值吗? (在这种情况下,Source:messageWaiting,Destination:message)

我不明白为什么ModelMapper试图映射实现的所有值而不是仅使用接口的值。

在阅读文档时,我发现了一种避免异常的方法

  

setAmbiguityIgnored(布尔值忽略)   设置是否应忽略与多个源属性匹配的目标属性。

使我有可能进行自定义映射。

我们非常感谢您的帮助:)

最佳问候 安杰洛

0 个答案:

没有答案