나는 목록 List<Payment>
을 가지고 있는데 다른 목록으로 매핑하고 싶습니다 List<PaymentPlan>
.mapStruct : 목록을 다른 목록에 매핑 하시겠습니까?
public class Payment {
@XmlElement(name = "Installment")
@JsonProperty("Installment")
private List<Installment> installments = new ArrayList<>();
@XmlElement(name = "OriginalAmount")
@JsonProperty("OriginalAmount")
private BigDecimal originalAmount;
//getters setters, more attributes
}
하고 ....
public class PaymentPlan {
//(Installment in different package)
private List<Installment> installments;
@XmlElement(name = "OriginalAmount")
@JsonProperty("OriginalAmount")
private BigDecimal originalAmount;
//getters setters, more attributes
}
나는 이런 식으로 뭔가가 작동 기대 ...
@Mappings({
@Mapping(//other mappings...),
@Mapping(source = "payments", target = "paymentInformation.paymentPlans")
})
ResultResponse originalResponseToResultResponse(OrigResponse originalResponse);
...하지만 난 얻을 :이 유형은 다음과 같이 :
Can't map property java.util.List<Payment> to java.util.List<PaymentPlan>.
Consider to declare/implement a mapping method java.util.List<PaymentPlan> map(java.util.List<Payment> value);
이 방법을 모르겠다. 형성. 우선 그래도 나는 목록에 대한 (같은 매퍼 클래스) 몇 가지 추가 매핑을 선언해야하므로 MapStruct이 같은 목록 유형의 각 필드에 매핑하는 방법을 알고 :
@Mappings({
@Mapping(source = "payment.originalAmount", target = "paymentInformation.paymentPlan.originalAmount")
})
List<PaymentPlan> paymentToPaymentPlan(List<Payment> payment);
을 ... 그러나 나는 오류 그것도 목록의 종류를 인식하지 못하는 것처럼 소리 때문에
The type of parameter "payment" has no property named "originalAmount".
같은 메시지는 분명 내가 완전히 잘못 뭔가.
기본적으로 하나의 목록에서 다른 유사한 목록으로 매핑 할 수 있습니까? 분명히 어떻게 든 다른 매핑 전략을 결합해야합니다.
은 BTW : 나는
@Mapping(target = "paymentPlans",expression="java(Helper.mapManually(payments))")
... 표현 매핑, 등으로 그것을 수행하는 방법을 알고 있지만 나는 MapStruct가 iself하여이를 처리 할 수있는 것 같아요.
나는 알고 있습니다. 이제 작동합니다. – Bevor