首页 > 解决方案 > 使用 ModelMapper 转换实体

问题描述

源实体和目标实体在字段命名风格上有所不同(一个是下划线,另一个是驼峰式)。所以,来源:

 public class User {
    private String first_name;
}

目的地:

public class UserDto {
    private String firstName;
}

我的任务是通过 ModelMapper 自动转换实体 - 无需处理字段映射(通过 getter-setter)。

为此,我尝试如下配置映射器:

 ModelMapper modelMapper = new ModelMapper();
    modelMapper.getConfiguration()
            .setSourceNameTokenizer(NameTokenizers.UNDERSCORE);
        

但这不起作用

标签: javamodelmapper

解决方案


默认情况下,字段匹配是禁用的,因此您必须在配置中更改标志。由于您的字段是私有的,您还必须将它们包含在您的设置中:

modelMapper.getConfiguration()
    .setFieldMatchingEnabled(true)
    .setFieldAccessLevel(AccessLevel.PRIVATE);

推荐阅读