我使用Dozer将我的DTO映射到JPA实体。
其中一个用例是,已经存在的实体的DTO表示到达了WS上,然后我使用JPA找到实体,并使用Dozer在上映射所发现的实体--使用映射(源、目标)方式(而不是映射(来源,destinationClass))。
我的实体(例如Address)上有一些值对象(具有经典的不可变值对象语义)为@Embeddable。问题是,当在例如: Employee对象上设置地址实例时,我希望dozer始终创建一个新的地址实例,而不是映射已经存在的地址实例。
因此,对于以下类:
public class Employee {
private Address address;
public void setAddress(Address address) {
this.address = address;
}
public Address getAddress() {
return this.address;
}
}我希望dozer调用setAddress()时总是使用一个新的Address实例,而不是试图用getAddress()映射新地址的字段。
有办法这样做吗?
发布于 2011-04-12 22:47:25
我想你可以用一个自定义转换器来完成这个任务。请参阅dozer文档中关于自定义转换器的部分。
https://stackoverflow.com/questions/5374358
复制相似问题