映射嵌套列表

问题描述 投票:0回答:1

我有一个带有嵌套对象列表的对象

@Getter
@Setter
@NoArgsConstructor
public class Notification {
    private Long id
    private Long statusId;
    private List <External> external;
}


@Getter
@Setter
@NoArgsConstructor
public class External{
    private Long externalId;
    private  LocalDate date;
}

Dto

@Getter
@Setter
@NoArgsConstructor
public class NotificationPayload {
    private Long id;
    private Long statusId;
    private List <ExternalReferencePayload> external;
}


@Getter
@Setter
@NoArgsConstructor
public class ExternalReferencePayload {
    private Long externalReferenceId;
}

映射器

@Mapper(componentModel = "spring")
public interface NotificationMapper{

  public Notification dtoToNotification(NotificationPayload  payload);
}

我搜索映射嵌套列表的方式

java mapstruct
1个回答
0
投票

为了对某些元素执行自定义映射,只需要定义一个映射方法,MapStruct将负责其余的工作。在您的示例中:

@Mapper(componentModel = "spring")
public interface NotificationMapper{

  public Notification dtoToNotification(NotificationPayload  payload);

  @Mapping(target = "externalId", source = "externalReferenceId")
  public External dtoExternal(ExternalReferencePayload payload);
}

使用此嵌套列表,将使用dtoExternal映射方法执行映射。使用@Mapping,您可以控制externalIdexternalReferenceId之间的映射方式

© www.soinside.com 2019 - 2024. All rights reserved.