假设我有以下课程
class User {
private String name:
private Address address;
// getters and setters
}
class UserDto {
private String name:
private Address address;
// getters and setters
}
我已经创建了一个 modelMapper ,它允许我执行以下操作:
UserDto userDto = modelMapper.map(user, UserDto.class); // 这个映射函数将 User 类中的每个字段映射到 UserDto 类
我想创建一个 modelMapper,它允许我执行以下操作:
UserDto userDto = modelMapper.mapWithoutAddress(user, UserDto.class); // 这个映射函数将除了 User 类的地址之外的所有字段映射到 UserDto 类
注意:我正在使用 ModelMapper 单例,我在所有应用程序中使用相同的实例。
正如文档所说,您可以跳过该属性。
modelMapper.typeMap(User.class, UserDto.class).addMappings(mapper -> mapper.skip(UserDto::setAddress));
您可以为每个映射使用单独的类型映射,例如:
UserDto userDto1 = Optional
.ofNullable(modelMapper.getTypeMap(User.class, UserDto.class, "map1"))
.orElseGet(() -> modelMapper.createTypeMap(User.class, UserDto.class,"map1")).map(model); //add custom mappings here
UserDto userDto2 = Optional
.ofNullable(modelMapper.getTypeMap(User.class, UserDto.class, "map2"))
.orElseGet(() -> modelMapper.createTypeMap(User.class, UserDto.class,"map2")).map(model); //add another custom mappings here