【发布时间】:2019-12-06 14:49:32
【问题描述】:
我的 DTO 中有一个字符串列表,我想将它映射到一个对象列表中,在映射器中我使用该服务通过该字符串获取对象,但出现以下错误
无法将属性“java.util.List
customers”映射到 “java.util.List 客户”。 考虑声明/实现一个映射方法: “java.util.List
地图(java.util.List 值)”。
public class FirstDomain implements Serializable {
private static final long serialVersionUID = 1L;
@Id
private String id;
private String description;
private List<Customer> customers;
}
public class FirstDomainDTO {
private String id;
private String description;
private List<String> customers;
}
@Mapper(uses = { CustomerService.class })
public interface FirstDomainMapper extends EntityMapper<FirstDomainDTO, FirstDomain> {
@Mapping(source = "customers", target = "customers")
FirstDomainDTO toDto(FirstDomain firstDomain);
@Mapping(source = "customers", target = "customers")
FirstDomain toEntity(FirstDomainDTO firstDomainDTO);
default String fromCustomer(Customer customer) {
return customer == null ? null : customer.getCode();
}
}
【问题讨论】:
-
尝试将qualifiedByName 或qualifiedByClass 作为@Mapping 注释中的参数进行转换。