Отображение значений объектов с помощью Dozer - PullRequest
4 голосов
/ 21 марта 2011

Я использую Dozer для сопоставления моих DTO с сущностями JPA.

Одним из вариантов использования является то, что DTO-представление уже существующей сущности прибывает на WS, затем я нахожу сущность с помощью JPA и использую Dozer для сопоставления DTO с найденнымобъект, использующий map (source, destination) способ отображения (не map (source, destinationClass) ).

У меня есть несколько объектов-значений (с классическим неизменяемымсемантика объекта значения) на моих объектах (таких как Address) как @Embeddables.Дело в том, что я хочу, чтобы dozer всегда создавал новый экземпляр адреса при установке его, например, на объекте Employee, а не отображал на уже существующий экземпляр Address.

Так со следующимклассы:

public class Employee {

    private Address address;

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

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

}

Я хочу, чтобы dozer всегда вызывал setAddress () с новым экземпляром Address, а не пытался отобразить новые поля Address с помощью getAddress ().

Есть лиспособ сделать это?

1 Ответ

2 голосов
/ 13 апреля 2011

Я думаю, вы могли бы сделать это с помощью специального конвертера.См. Раздел о пользовательских преобразователях в документации по бульдозеру.

...