Dozerを使用してDTOをJPAエンティティにマッピングしています。
ユースケースの1つは、既存のエンティティのDTO表現がWSに到着し、JPAを使用してエンティティを検索し、Dozerを使用して、map(source、destination)マッピング方法(map(source、destinationClass)ではありません)。
@Embeddablesとして、エンティティ(Addressなど)にいくつかの値オブジェクト(従来の不変の値オブジェクトのセマンティクス)があります。重要なのは、ドーザーが既存のAddressインスタンスにマップするのではなく、たとえばEmployeeオブジェクトに設定するときに、常に新しいAddressインスタンスを作成するようにすることです。
したがって、次のクラスを使用します。
public class Employee {
private Address address;
public void setAddress(Address address) {
this.address = address;
}
public Address getAddress() {
return this.address;
}
}
getAddress()を使用して新しいAddress'フィールドをマップしようとするのではなく、常に新しいAddressインスタンスを使用してdozerがsetAddress()を呼び出すようにします。
これを行う方法はありますか?