Дочерний объект MapStruct - PullRequest
       30

Дочерний объект MapStruct

1 голос
/ 17 июня 2020

Я пытаюсь использовать mapstruct для преобразования DTO в представление моего класса.

Класс выглядит примерно так:

public class Loan{
    private Amount total;
    private Amount paid;
}

public class Amount{
    private Long amount;
    private String currency;
}

Класс DTO будет примерно таким:

public class LoanDTO{
    private Long paidAmount;
    private Long totalAmount;
    private String currency;
}

Моя функция сопоставления будет примерно такой, но я не уверен, как правильно сопоставить «Сумму».

@Mapper
public interface ResposeMap {

    Loan toLoan(LoanDTO loanDTO);
}

1 Ответ

1 голос
/ 17 июня 2020

Если вы используете java8 и mapstruct 1.3 (возможно, он работает в более ранних версиях), тогда это может быть так:

@Mapper
public interface ResposeMap {

    @Mapping(target = "total.amount", source = "totalAmount")
    @Mapping(target = "total.currency", source = "currency")
    @Mapping(target = "paid.amount", source = "paidAmount")
    @Mapping(target = "paid.currency", source = "currency")
    Loan toLoan(LoanDTO loanDTO);
}

подробнее: Документация Mapstruct

...