java - 使用 ModelMapper 转换实体

标签 java 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);
        

但这不起作用

最佳答案

默认情况下,field matching is disabled ,因此您必须更改配置中的标志。由于您的字段是私有(private)的,因此您还必须将它们包含在您的设置中:

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

关于java - 使用 ModelMapper 转换实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67987591/

相关文章:

javascript - 如何将 servlet 中的字符串解析为 javascript 并创建包含数组值的格式化对象

java - modelmapper 跳过嵌套对象的属性

java - 尝试定义自定义 PropertyMap 时出现 NullPointerException

java - 如何将 Modelmapper Converter 重写为 Lambda 表达式 (java 1.8)?

java - 使用 ModelMapper 防止循环引用 - 列表

java - 像 IntelliJ 一样在 Eclipse 中使用 Lambda 建议

java - 如何避免使用 Hibernate 从 VARCHAR 到 VARCHAR2 的隐式类型转换?

java - 将 Hibernate Validator 与 JPA 和 Spring 结合使用

java - Jade 行为调度

java - 如何使用 ModelMapper 处理集合到列表的转换