【问题标题】:Mapping value objects with Dozer使用 Dozer 映射值对象
【发布时间】:2011-07-19 11:07:14
【问题描述】:

我正在使用 Dozer 将我的 DTO 映射到 JPA 实体。

其中一个用例是已经存在的实体的 DTO 表示到达 WS,然后我使用 JPA 找到实体并使用 Dozer 将 DTO 映射到找到的实体上map(source, destination) 映射方式(不是map(source, destinationClass))。

我的实体(例如地址)上有一些值对象(具有经典的不可变值对象语义)作为@Embeddables。问题是,我希望推土机在设置时始终创建一个 new Address 实例,例如:Employee 对象,而不是映射到已经存在的 Address 实例。

因此使用以下类:

public class Employee {

    private Address address;

    public void setAddress(Address address) {
        this.address = address;
    }

    public Address getAddress() {
        return this.address;
    }

}

我希望推土机始终使用新的地址实例调用 setAddress(),而不是尝试使用 getAddress() 映射新的地址字段。

有什么办法吗?

【问题讨论】:

    标签: java mapping dozer


    【解决方案1】:

    我认为您可以使用自定义转换器来做到这一点。请参阅推土机文档中有关 custom converters 的部分。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多