首页 > 解决方案 > 如何将参数从 List 映射器方法传递到 Java mapstruct 中的 Object 映射器方法

问题描述

我无法将一些常见参数从列表映射器(字符串公司)传递给对象映射器

@Mapper
public abstract class EmployeeMapper {
public abstract Employee getEmployeeFromDTO(EmployeeDTO employeeDTO, String 
company);
@AfterMapping
public void addCompany(@MappingTarget Employee employee, String company) {
   employee.setCompany(company);
}
public abstract List<Employee> getEmployeeFromDTOs(List<EmployeeDTO> employeeDTOs, 
String company);
}

起初我使用接口而不是抽象类。并且没有@AfterMapping 方法。事实上,我不知道如何正确地将其作为@Context String 公司传递。没有@Context 和@AfterMapping 是否有可能,或者至少有它?所以我的问题是,当列表映射器 getEmployeeFromDTOs 将按顺序调用“项目”映射器 getEmployeeFromDTO 时,究竟如何传递“字符串公司”。如果将它传递给最后一个方法,我会很容易地将常见的“公司”映射到 Employee,因为 EmployeeDTO 没有这样的数据。我想的另一种方法是使用@Context 和@AfterMapping。在这种情况下,我应该将@AfterMapping 方法放在相对映射方法之前还是之后?我是否应该将 @AfterMapping 方法放在 Employee/EmployeeDTO 类中?

标签: javamapstruct

解决方案


推荐阅读