リスト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".
明らかに私は何かを完全に間違っています。なぜなら、リストのタイプさえ認識しないように思えるからです。
私は基本的に1つのリストから別の同様のリストにマップできますか?明らかに私はどうにかして別のマッピング戦略を組み合わせる必要があります。
はところで:私は
@Mapping(target = "paymentPlans",expression="java(Helper.mapManually(payments))")
...表現マッピング、などでそれを行う方法を知っているが、私はMapStructがiselfことで、これを扱うことができますね。
わかりました。それは今、thxで動作します。 – Bevor