我需要一个mapstruct映射,用于具有要以这种方式映射到目标类的对象列表的类:
//Source class:
public class VoucherTransaction {
private List<Voucher> vouchers;
}
//TargetClass
public class VoucherTransactionServiceDTO {
private List<UUID> voucherIds;
private List<String> voucherSerials;
}
public class Voucher {
private UUID id;
private String serial;
}
在映射器类中,可以为每个目标使用表达式,并为目标中的每个列表实现单独的默认映射。
@Mapping(target = "voucherIds", expression = "java( mapVoucherListToVoucherIdList(transaction.getVouchers()) )")
@Mapping(target = "voucherSerials", expression = "java( mapVoucherListToVoucherSerialList(transaction.getVouchers()) )")
public VoucherTransactionServiceDTO TransactionToServiceDTO(VoucherTransaction transaction);
default List<UUID> mapVoucherListToVoucherIdList(List<Voucher> vouchers) {
List<UUID> voucherIds = new ArrayList<>();
if (vouchers != null && !vouchers.isEmpty())
voucherIds = vouchers.stream().map(Voucher::getId).collect(Collectors.toList());
return voucherIds;
}
default List<String> mapVoucherListToVoucherSerialList(List<Voucher> vouchers) {
List<String> voucherSerials = new ArrayList<>();
if (vouchers != null && !vouchers.isEmpty())
voucherSerials = vouchers.stream().map(Voucher::getSerial).collect(Collectors.toList());
return voucherSerials;
}
假设我有这样的映射: 现在,我需要将子列表映射到子列表,但它们都有相同的父对象。我希望这样做: 但不管用,有机会做吗?
如何将字符串映射到列表,并将列表映射到字符串? 考虑到我们有以下班级 在Dozer和Orika中,我们可以使用以下代码行轻松映射 如何在MapStruct中进行相同类型的映射?在哪里可以找到有关mapstruct的更多示例?
下面是我的DTO。 源DTO 目标DTO
给定: 我想把所有的车都标出来。将轮胎分为单独的轮胎板。我知道我可以做一个
当我试图将从表t_comment_photo查询的userPhoto映射到java类ToyComment中的列表元素时,我得到了错误。 我试图修复的resultMap是: 我尝试了和,但都不起作用。 怎么把它修好?
我是MapStruct的新手,我试图映射目标类中的对象列表,其中as源具有包括其他字符串变量在内的单个值。自定义实现也没有运气。请执行的任何建议