modelmapper - ModelMapper - 尝试跳过目标映射时的 NPE?
问题描述
一个非常简单的问题,它在我的案例中产生了漏洞。每次转换 User --> UserDTO 时,我都会尝试跳过 userDTO 的 setPassword。
我在 ModelMapper 的这一行得到 NullPointerException -
我知道“源”映射不存在,但我的问题是为什么它甚至关心它,因为我要求它根本不设置密码。
抱歉,我认为我在 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());
}
解决方案
啊!!!这是 v 1.1.0 中的一个错误。我刚刚将它升级到 2.3.2,我不再获得 NPE。在发布这个问题之前,我应该考虑升级版本。
推荐阅读
- excel - 按顺序将行从多张工作表复制到另一个工作表
- excel - Excel - 系列增量不会遵循模式
- flutter - (冻结)如何更新另一个列表中的列表中的对象?
- java - 将 aws 资源限制为特定的 ecs 集群
- spring - Maven 命令行构建无法运行 maven-surefire-plugin 测试并生成错误 SurefireBooterForkException
- airflow - 如何在 Airflow MySQL Operator 中使用 jinja 模板
- r - 使用可反应功能完成的表格未在 R Shiny 应用程序中显示
- python - 如何计算 CSV 文件中数字列表的中位数?
- javascript - .sort 不是数组上的函数
- javascript - 如何解决这个未捕获的引用错误:like_post 未在 HTMLAnchorElement.onclick 中定义?