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

Dozer-从实体列表到实体ID列表

姚德容
2023-03-14

我有一个名为User的域对象

public class User {
    private long id;
    private String username;
    private String email;
    private List<Profile> profiles;

    // getters & setters
}

我有相关的DTO(UserDTO),它是

public class UserDTO {
    private long id;
    private String username;
    private String email;
    private List<Long> profilesId;

    // getters & setters
 }

我想使用Dozer从域对象转换为DTO。Profile类有一个属性

Long id;

我想要的是Dozer为列表中的每个配置文件获取配置文件的id并将其保存在DTO的列表中。我可以做这样的事情吗?我必须使用自定义转换器吗?

这是我的实际映射文件

<mapping>
    <class-a>common.model.User</class-a>
    <class-b>common.model.dto.UserDTO</class-b>
    <field>
        <a>legalEntity.id</a>
        <b>legalEntityId</b>
    </field>
    <field type="one-way">
        <a>profiles.id</a>
        <b>profilesId</b>
    </field>
</mapping>

共有1个答案

丌官博文
2023-03-14

解决了只需将此方法添加到源类

public List<Long> getProfilesId() {
    List<Long> profilesId = new ArrayList<Long>();
    for(Profile p : this.profiles) {
        profilesId.add(p.getId());
    }
    return profilesId;
}

和映射文件

<field type="one-way">
    <a get-method="getProfilesId">profiles</a>
    <b>profilesId</b>
</field>

这说明推土机使用哪种方法进行转换。

 类似资料:
  • Javers v5.6.3 我有一个父实体,其中包含一系列子实体。当我区分两个父母列表,发现一个孩子有变化时,我需要知道哪个父母包含变化的孩子。 我的实体: 我想要区分的是: 为了简洁起见,切换到Groovy: 我是如何区分的: 输出: 我的问题是: 如何发现哪个父级包含子级/c1? 除了我有一个老板集合之外,这类似于应该检测薪酬变化()示例。使用该示例,给定具有不同下属的老板列表,如何找出的老板

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

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

  • 我有一个实体: 内在类 我需要的是内部ID列表。为了解决这个问题,我尝试了这样的方法:- List innerEnityIds=listofenity.stream().map(sys->sys.getdata().stream().map(obj->obj.getid().collect(collectors.tolist()));

  • 有一个奇怪的问题,想不出该怎么处理。有简单的POJO: UPD有双向Hibernate映射,也许它与问题有关。

  • 我的父母子女单向关系如下: 我创建一个父实例,给它分配一个子列表,并尝试持久化它,它工作得很好。 当我试图通过子实体单独保存时,我看到insert查询试图将null插入子表中的列PARENT_ID,并导致 异常,同时保存独立于父表的子实体。我试图插入的子实体与已经存在的父实体相关。 在将关系定义为单向关系后,是否无法直接保存子实体?