sách gpt4 ai đã đi

mapStruct:将列表映射到其他列表?

In lại 作者:行者123 更新时间:2023-12-01 13:30:16 56 4
mua khóa gpt4 Nike

我有一个 list List我想映射到另一个列表 List .这些类型如下所示:

public class Payment {

@XmlElement(name = "Installment")
@JsonProperty("Installment")
private List installments = new ArrayList<>();

@XmlElement(name = "OriginalAmount")
@JsonProperty("OriginalAmount")
private BigDecimal originalAmount;

//getters setters, more attributes
}

和....
public class PaymentPlan {
//(Installment in different package)
private List 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 to java.util.List.
Consider to declare/implement a mapping method java.util.List map(java.util.List value);

我不知道如何应用这些信息。首先,我需要为列表声明一些额外的映射(在同一个映射器类中),因此 MapStruct 知道如何映射 List 类型的每个字段,如下所示:
@Mappings({
@Mapping(source = "payment.originalAmount", target = "paymentInformation.paymentPlan.originalAmount")
})
List paymentToPaymentPlan(List payment);

...但我收到错误消息,例如
The type of parameter "payment" has no property named "originalAmount".

显然我做了一些完全错误的事情,因为听起来它甚至无法识别 List 的类型。

我怎样才能基本上从一个列表映射到另一个类似的列表?显然我需要结合不同的映射策略。

顺便说一句:我知道如何使用表达式映射来做到这一点,比如......
@Mapping(target = "paymentPlans",expression="java(Helper.mapManually(payments))")
但我想 MapStruct 可以自己处理这个。

1 Câu trả lời

我想您使用的是版本 1.1.0.Final .您的额外映射是正确的,唯一的区别是您需要定义一个没有列表的映射,然后 MapStruct 将使用它来进行映射(示例消息对集合有点误导)。

PaymentPlan paymentToPaymentPlan(Payment payment);

您甚至不需要 @Mappings因为它们会被自动映射。您可能还需要为 Instalment 定义方法。 (因为它们在不同的包中)。

如果您切换到 1.2.0.CR2,那么 MapStruct 可以自动为您生成方法。

关于mapStruct:将列表映射到其他列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46285086/

56 4 0
Bài viết được đề xuất: docker - 在 Docker 中安装 Mongo c 和 c++ 驱动程序
Bài viết được đề xuất: java - Java中使用 block 压缩大文件
Bài viết được đề xuất: scala 奇怪的符号 "_@"意思
Bài viết được đề xuất: java - 从文件读取数据时遇到问题 - java
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com