当前位置: 首页 > 知识库问答 >
问题:

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

松和安
2023-03-14

我有一个DTO列表,我需要将这个DTO映射到两个不同的实体对象列表。我不熟悉Java和Springboot。我找到了两个DTO映射到一个实体对象的示例。例如http://modelmapper.org/getting-started/

个人实体-

地址实体-

DTO:

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import java.util.List;
import lombok.Builder;
import lombok.Data;

@Data
@Builder
public class PersonDTO {

  private int id;

  private String name;

  @JsonInclude(Include.NON_NULL)
  private List<Address> address;
}

我需要将上面的DTO列表映射到下面的实体对象列表:

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

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

  private int id;
  private String name;

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

}

我如何映射一个列表的人的DTO到列表的人和列表的地址?

共有1个答案

别永年
2023-03-14

你可以使用org。模型映射器。映射列表的TypeToken

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());
 类似资料:
  • 我需要使用MapStruct将一些实体和实体列表转换为单个DTO。此DTO包括嵌套列表。 假设,我有以下持久性支持的POJO: 以及这些实体的一些集合: DTO如下所示: 和嵌套的DTO: 除SomeLink列表外,我需要从实体映射的所有字段: 我填充的嵌套列表如下: 结果涉及大量手动转换: 有没有办法通过使用MapStruct的功能来完成同样的工作?就像这样:

  • 问题内容: 我正在使用Spring MVC框架编写简单的博客Web应用程序。我愿意为我的应用添加图层。 我决定使用ModelMapper框架从对象转换为视图中使用的对象。 我只有一个问题。在我的主页上,我正在显示博客中的帖子列表。在我看来,这只是(实体)对象的列表。我想更改它以将对象列表传递给我的视图。有没有什么办法来映射的对象的单方法调用的对象?我当时在考虑编写将对此进行转换的转换器,但是我不确

  • 问题内容: 假设我有一个表示某些嵌套列表的字符串,我想将其转换为真实的东西。我认为可以做到这一点: 但是在用户可能提供字符串来执行的环境中,这可能是/将不是一个好主意。是否有人对完成相同任务的整洁解析器有任何想法? 问题答案: import ast >>> mylist = ast.literal_eval(“[‘foo’, [‘cat’, [‘ant’, ‘bee’], ‘dog’], ‘bar

  • 当我试图使用ModelMapper将嵌套的java对象转换为嵌套的DTO时,我遇到了一个问题。在父DTO对象中,子DTO为null。以下是代码片段。 实体类: DTO的课程: 这是映射器代码: 输出: 输出用户DTO:UserDTO[名称=xyz,地址=null,产品=null] 在这里,我想将用户实体转换为UserDTO-dto。我得到了地址和产品DTO的空值。我在这里到底缺少什么?有人知道吗?

  • 我需要访问。问题是列表的嵌套深度不同。下面是一个例子: 我的预期输出是获得两个列表的时间序列,即和。我尝试过不同的东西,其中包括Lappy(列表2,`[`,1),但在这里不起作用。

  • 我试图在spring数据中编写一个findBy,希望所有员工的第一部门状态都处于活动状态。是否可以使用spring数据方法名称,而不使用自定义查询? 类似于List findByDepartmentFirstStatusIsActive(); 我试了几次,但都没用,所以我想没有!!!