【问题标题】:Dozer mapper field don`t exists推土机映射器字段不存在
【发布时间】:2019-08-02 18:47:32
【问题描述】:

我试图在我的应用中使用 Dozer,所以我有 2 个类:

public MyEntity{
  private String name;
  private Stirng age;
  private String user;
  private Integer day;
}

public class MyVO{
  private String name;
  private String age;
}

所以,首先我从我的数据库中读取实体(填充所有字段)然后我调用推土机将值从 VO 复制到实体

MyEntity 实体 = myRepo.findById(1);

entity = mapper.map(myVo, MyEntity.class);

但是 dozzer 首先将 myEntity 中的所有 props 设置为 null,然后从 myVo 中复制值,

可以保留该道具(两个对象中都不存在)并仅复制存在的字段(或在我的 .xml 文件中映射)

【问题讨论】:

    标签: spring-boot dozer


    【解决方案1】:
    mapper.map(myVo, MyEntity.class);
    

    这个对 Dozer 的调用告诉它创建一个新的 MyEntity 实例,然后映射来自 myVo 的值。这就是为什么您的某些字段在结果实体中为空的原因。

    如果要使用 Dozer 更新现有实例,请使用实例而不是类名调用 Dozer,即

    mapper.map(myVo, entity);
    

    注意,这不会将实体返回给您,因为它会修改它。

    【讨论】:

      猜你喜欢
      • 2012-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多