java - 如何将参数从 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 类中?
解决方案
推荐阅读
- python - 使用 itertuples 索引超出范围:IndexError:索引 850 超出轴 1 的范围,大小为 786
- angular - Angular 8 应用程序在 IE11 上加载 type="module" 脚本而不是 es5
- pandas - 在数据框的两列之间迭代
- sublimetext3 - 如何在 Sublime Text 3 中设置文件选项卡(即 tabset_control)的最大宽度?
- r - R:计算增长/衰减率
- node.js - 无法从 s3 存储桶下载文件
- javascript - 如何相对于单击的按钮对齐 react-bootstrap 模式
- mysql - 更新 <\DATE> 作为 MSAccess 和 MySQL 保存中字符串的一部分
- typescript - 使用 TypeScript 会使 apk 大小变大?
- css - 如何使css具有每行始终具有相同高度的反应列