当前位置: 首页 > 知识库问答 >
问题:

ModelMapper-尝试跳过目标映射时的NPE?

司徒隐水
2023-03-14

一个非常简单的问题,烟熏我的情况下的漏洞。我试图跳过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());
}

共有1个答案

卫琛
2023-03-14

啊!!!这是v1.1.0中的一个错误。我刚刚升级到2.3.2,我不再得到NPE。在发布这个问题之前,我应该想到升级版本。

 类似资料:
  • 我有两个类。请求DTO和实体。我想将请求DTO映射到实体。在这种情况下,我想手动插入实体属性之一,这意味着属性不在请求DTO中。如何使用模型映射器实现这一点。 但这不起作用,它说它不能将字符串转换为长字符串。我要求解决这个问题,或者采取更好的方法。

  • 我与ModelMapper框架有麻烦。请解释为什么我看到以下行为。 我在build.gradle有以下依赖性 和一个类客户: 我还有一个地图绘制工具: 还有一个测试 在fred()中,方法输出是非红色的“Customer{name=fred,age=40}”(“Customer{name=null,age=40}”)。你能解释一下为什么吗?为什么我在第一个方法中看不到输出“George”?

  • 我有一个父类和子类,其各自的DTO如下 当我试图将父映射到父映射到父映射到父映射时,我得到了堆栈溢出错误。 请帮我解决这个问题。

  • 我在使用模型映射器使用执行父子实体更新时遇到了一个问题。 描述如下 父类: 儿童班: 通过这种安排,我能够成功地创建和查询站点地址组合。但是,我在进行更新时遇到了一个问题。我正在尝试使用modelmapper语句更新站点或地址,如下所示: 期望在传入站点中更改的所有字段(即来自请求的站点)应替换站点中的现有字段。但是,我从modelmapper中得到一个Stackoverflow错误。 我们是否有

  • 问题内容: 我正在使用ModelMapper Framework(http://modelmapper.org/)映射Java中的对象。在映射包含抽象类的具体类(DTO到实体)时遇到了一个问题。 示例:任务具有AbstractItems列表。 AbstractItems是问题和条件。 映射方法: ModelMapper尝试创建一个AbstractItem的新实例,该实例将引发异常。有没有办法在运行