MapStruct按源字段值映射目标字段

时间:2018-11-12 06:07:42

标签: mapping mapstruct

我的源对象具有这种格式

public class Source

{
    private SourceParm parm;

    //GETTERS and SETTERS

}

并且SourceParm是像这样的自引用对象

public class SourceParm

{
    private List<SourceParm> parm;

    private List<String> value;

    private String name;

    private String type;

//GETTERS and SETTERS

}

现在让我们假设目标类是这种格式

public class Target {

   String type;
   String channelType;
   String externalTxnId;
   String correlationId;
}

现在,如果我要映射到目标字段,则需要编写这样的代码

Target target=new Target();
if(SourceParm.getName().equals("channelType")){
  target.setChannelType(SourceParm.getValue())
}

另外,对于某些目标值,我将不得不像下面这样迭代SourceParm列表

for(SourceParm sourceParm : sourceParm.getSourceParms()){

   if(sourceParm.getName().equals("externalTxnId")){
      target.setExternalTxnId(SourceParm.getValue())
    }

  }

如何使用MapStruct实现呢?最终我写了很多默认方法

时,看不到任何简单的方法

0 个答案:

没有答案