ModelMapper 跳过一个字段
ModelMapper skip a field
我想在 UserDTO
和 User
之间映射,但不包括一个字段,比如 city
。我该怎么做,因为我认为这种方法行得通,但行不通:
ModelMapper modelMapper = new ModelMapper();
modelMapper.typeMap(UserDTO.class,User.class).addMappings(mp -> {
mp.skip(User::setCity);
});
由于泛型参数,我们无法使用 lambda 表达式。
ModelMapper modelMapper = new ModelMapper();
modelMapper.addMappings(new PropertyMap<Dto, Source>() {
@Override
protected void configure() {
skip(destination.getBlessedField());
}
});
要使配置正常工作需要添加:
modelMapper.getConfiguration().setAmbiguityIgnored(true);
例如
ModelMapper modelMapper = new ModelMapper();
modelMapper.getConfiguration().setAmbiguityIgnored(true);
modelMapper.addMappings(clientPropertyMap);
modelMapper.map(UserDTO, User);
PropertyMap<UserDTO, User> clientPropertyMap = new PropertyMap<UserDTO, User>() {
@Override
protected void configure() {
skip(destination.getCity());
}
};
For the configuration to work need to add:
modelMapper.getConfiguration().setAmbiguityIgnored(true);
仅当目标字段与多个源字段匹配时才成立。如果源-目标之间存在 1-1 或 0-1 匹配,则跳过目标字段的设置将在没有上述内容的情况下工作。
我想在 UserDTO
和 User
之间映射,但不包括一个字段,比如 city
。我该怎么做,因为我认为这种方法行得通,但行不通:
ModelMapper modelMapper = new ModelMapper();
modelMapper.typeMap(UserDTO.class,User.class).addMappings(mp -> {
mp.skip(User::setCity);
});
由于泛型参数,我们无法使用 lambda 表达式。
ModelMapper modelMapper = new ModelMapper();
modelMapper.addMappings(new PropertyMap<Dto, Source>() {
@Override
protected void configure() {
skip(destination.getBlessedField());
}
});
要使配置正常工作需要添加:
modelMapper.getConfiguration().setAmbiguityIgnored(true);
例如
ModelMapper modelMapper = new ModelMapper();
modelMapper.getConfiguration().setAmbiguityIgnored(true);
modelMapper.addMappings(clientPropertyMap);
modelMapper.map(UserDTO, User);
PropertyMap<UserDTO, User> clientPropertyMap = new PropertyMap<UserDTO, User>() {
@Override
protected void configure() {
skip(destination.getCity());
}
};
For the configuration to work need to add:
modelMapper.getConfiguration().setAmbiguityIgnored(true);
仅当目标字段与多个源字段匹配时才成立。如果源-目标之间存在 1-1 或 0-1 匹配,则跳过目标字段的设置将在没有上述内容的情况下工作。