如何使用 mapstruct 映射到 List<>
How mapping to List<> with mapstruct
您好,我需要映射变量来请求。我怎样才能映射到列表中。
我的请求看起来像。
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 个新方法来实现。
你的映射器看起来像:
@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);
}
您好,我需要映射变量来请求。我怎样才能映射到列表中。 我的请求看起来像。
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 个新方法来实现。
你的映射器看起来像:
@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);
}