Java 使用Dozer映射值对象

Java 使用Dozer映射值对象,java,mapping,dozer,Java,Mapping,Dozer,我正在使用Dozer将DTO映射到JPA实体 其中一个用例是,已经存在的实体的DTO表示到达WS,然后我使用JPA找到该实体,并使用Dozer使用映射(源、目的地)方式(而不是映射(源、目的地类))将DTO映射到找到的实体上 在我的实体(如Address)上有一些值对象(具有经典的不可变值对象语义),如@Embeddedables。问题是,我希望dozer在设置(例如:Employee object)时始终创建一个新的地址实例,而不是映射到现有的地址实例 因此,对于以下类别: public cl

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

其中一个用例是,已经存在的实体的DTO表示到达WS,然后我使用JPA找到该实体,并使用Dozer使用映射(源、目的地)方式(而不是映射(源、目的地类))将DTO映射到找到的实体上

在我的实体(如Address)上有一些值对象(具有经典的不可变值对象语义),如@Embeddedables。问题是,我希望dozer在设置(例如:Employee object)时始终创建一个新的地址实例,而不是映射到现有的地址实例

因此,对于以下类别:

public class Employee {

    private Address address;

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

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

}
我希望dozer始终使用新地址实例调用setAddress(),而不是尝试使用getAddress()映射新地址字段


有什么方法可以做到这一点吗?

我想你可以用一个定制的转换器来做到这一点。请参阅推土机文档中的章节