如何映射到List<>与mapstruct [英] How mapping to List<> with mapstruct

查看:641
本文介绍了如何映射到List<>与mapstruct的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要mappig变量来请求.我如何映射到列表. 我的请求看起来像这样.

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;
    }
}

和我的地图绘制者

@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);
}

推荐答案

据我了解,您希望将值映射到单例列表中.您可以通过在映射器中提供2种新方法来实现这一点.

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.

您的映射器如下所示:

@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);
}

这篇关于如何映射到List&lt;&gt;与mapstruct的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆