ModelMapper - NPE при попытке пропустить назначение назначения?
Очень простая проблема, которая курил дыры в моем случае. Я пытаюсь пропустить setPassword userDTO каждый раз, когда я конвертирую User -> UserDTO.
Я получаю NullPointerException, в этой строке в ModelMapper -
Я понимаю, что "исходное" сопоставление отсутствует, но мой вопрос: почему его это вообще волнует, так как я попросил его вообще не устанавливать пароль?
Извините, я думаю, что мне не хватает некоторых основ здесь с ModelMapper. Спасибо за ваше время и помощь.
Получил помощь от ModelMapper, пропустил поле и несколько других ссылок, но не повезло.
Ниже приведен код
@Bean
public ModelMapper modelMapper() {
ModelMapper mm = new ModelMapper();
mm.getConfiguration().setMatchingStrategy(MatchingStrategies.STRICT);
TypeMap<User, UserDTO> userEntityToDTOMap = mm.createTypeMap(User.class, UserDTO.class);
userEntityToDTOMap.addMappings(a -> a.skip(UserDTO::setPassword));
return mm;
}
public static void main(String[] args) {
BootstrapConfigurationManager mgr = new BootstrapConfigurationManager();
ModelMapper mm = mgr.modelMapper();
mm.getConfiguration().setPropertyCondition(Conditions.isNotNull());
User user = new User();
user.setId(44L);
user.setPassword("password");
UserDTO userDTO = new UserDTO();
userDTO.setEmailAddress("abc@abc.com");
mm.map(user, userDTO);
System.out.println(userDTO.getId());
System.out.println(userDTO.getEmailAddress());
System.out.println(userDTO.getPassword());
}
1 ответ
Ах!!! Это была ошибка в версии 1.1.0. Я только что обновил его до 2.3.2 и больше не получаю NPE. Я должен был подумать об обновлении версии, прежде чем отправлять этот вопрос.