How mapping to List<> with mapstruct

两盒软妹~` 提交于 2019-12-24 19:07:16

问题


Hi i need mappig variables to request. How can i mapp into List. My request looks like.

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

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

and my mapper

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

回答1:


From what I understand you want to map your values into a singleton list. You can achieve that by providing 2 new methods in your mapper.

You mapper would look like:

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

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

    //Add mappings if they are needed
    protected abstract ApplicationData mapToApplication(Data variables);
}


来源:https://stackoverflow.com/questions/47451671/how-mapping-to-list-with-mapstruct

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!