2017-11-23 4 views
0

こんにちは、mappig変数が必要です。どのように私はリストにマップすることができます。 リクエストは次のようになります。List <>へのmapstructへのマッピング

public class Request { 
    private String Id; 
    private List<ApplicationData> applicationData; 

    @Data 
    @NoArgsConstructor 
    @AllArgsConstructor 
    public static class ApplicationData { 
     private String data1; 
     private String data2; 
     private String data3; 
    } 
} 

と私のマッパー私はあなたがシングルトンリストに自分の価値観をマッピングしたい理解して何から

@Mapper(componentModel = "spring") 
public abstract class StoreApplicationRequestMapper { 
    @Mapping(target = "Id", source = "data.Id") 
    @Mapping(target = "applicationData.???.data1", source = "data.data1") 
    @Mapping(target = "applicationData.???.data2", source = "data.data2") 
    @Mapping(target = "applicationData.???.data3", source = "data.data3") 
    public abstract Request map(Data variables); 
} 
+0

あなたマッパーは次のようになります。あなたの質問を編集して、あなたが期待している結果を表示することができますか、またはあなたのコードが何をしたいのかについての説明を含む疑似コードを表示できますか? – Phil

+0

アイデアは、単一の要素リストを作成することだと思います。 'expression'を使ってみてください。 @Mapping(target = "applicationData"、expression = "java(Collections.singletonList(new ApplicationData(variables.data.data1、variables.data.data2、variables.data.data3)))"のようなものです。パッケージで完全修飾されている可能性があります。 –

答えて

0

。マッパーで2つの新しいメソッドを提供することで、これを達成できます。あなたが必要なものは明らかではない

@Mapper(componentModel = "spring") 
public abstract class StoreApplicationRequestMapper { 
    @Mapping(target = "Id", source = "Id") 
    @Mapping(target = "applicationData", source = "variables")   
    public abstract Request map(Data variables); 

    protected List<ApplicationData> mapToList(Data variables) { 
     return variables == null ? null : mapToApplication(variables); 
    } 

    //Add mappings if they are needed 
    protected abstract ApplicationData mapToApplication(Data variables); 
} 
関連する問題