Java 如何将嵌套的DTO对象列表解压为不同实体的列表?

Java 如何将嵌套的DTO对象列表解压为不同实体的列表?,java,spring,spring-boot,Java,Spring,Spring Boot,我有一个DTO列表,我需要将这个DTO映射到两个不同的实体对象列表。我不熟悉Java和Springboot。我找到了两个DTO映射到一个实体对象的示例。 比如说, 个人实体->id,姓名 地址实体->街道,州 DTO: 如何将人员列表映射到人员列表和地址列表?您可以使用org.modelmapper.TypeToken映射列表 List<Person> persons = modelmapper.map(personDTOs,new TypeToken<List<Pers

我有一个DTO列表,我需要将这个DTO映射到两个不同的实体对象列表。我不熟悉Java和Springboot。我找到了两个DTO映射到一个实体对象的示例。 比如说,

个人实体->id,姓名

地址实体->街道,州

DTO:


如何将人员列表映射到人员列表和地址列表?

您可以使用
org.modelmapper.TypeToken
映射列表

List<Person> persons = modelmapper.map(personDTOs,new TypeToken<List<Person>>(){}.getType());
List persons=modelmapper.map(personDTOs,newtypetoken(){}.getType());
对于地址列表,请使用此

List<Address> addresses = personDTOs.stream().map(PersonDTO::getAddress)
            .flatMap(Collection::stream).collect(Collectors.toList());
List addresses=personDTOs.stream().map(PersonDTO::getAddress)
.flatMap(Collection::stream).collect(Collectors.toList());

如果可能,请不要使用Lombok。它以一种不好的方式做好事。你尝试过这个解决方案吗?
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class Address {

  private int Street;
  private String State;

}
List<Person> persons = modelmapper.map(personDTOs,new TypeToken<List<Person>>(){}.getType());
List<Address> addresses = personDTOs.stream().map(PersonDTO::getAddress)
            .flatMap(Collection::stream).collect(Collectors.toList());