我有员工对象列表 - 列表
我需要将其转换为员工调动对象列表 - List
假设两个类中都存在“密码”字段。
- 在少数情况下,我需要包含来自 Employee → EmployeeDTO 的密码
- 在少数情况下,我不需要密码并且希望被排除在 Employee - EmployeeDTO 之外。
示例代码片段:
List<Employee> employees = employeeRepository.findAll();
// Define the target type
Type targetListType = new TypeToken<List<EmployeeDTO>>() {}.getType();
List<EmployeeDTO> employeeDTOs = modelMapper.map(employees, targetListType);
请让我知道如何跳过映射/复制字段。
看看官方的用户手册 http://modelmapper.org/user-manual/property-mapping/#conditional-mapping条件映射。
简单来说:
您需要添加新的映射并使用条件。您的来源和目的地将是:
首先创建并自定义您的条件。它会是这样的:
Condition<?, ?> isNotZero = new Condition<PersonDTO, Employee>() {
public boolean applies(MappingContext<PersonDTO, Employee> context) {
//Your conidition
return context.getSource().getEmployeeId() != 0;
}
};
然后添加Mapping并使用条件:
modelMapper.addMappings(new PropertyMap<PersonDTO, Person>() {
protected void configure() {
when(isNotZero).map(source).setEmployee(null);
}
});
您可以在 ModelMapper GitHub 存储库中找到此示例。作者还做了一些,并且解释得很好:
-
Link https://github.com/jhalterman/modelmapper/blob/2f5ee77beaaee8efb2188f2c8afa88b9dbbc0649/core/src/test/java/org/modelmapper/functional/conditional/ConditionalMapping2.java对于上面的例子
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)