首页 > 解决方案 > 如何使用 ModelMapper 将外键从 dto 映射到实体对象?

问题描述

这是我的用户实体

class UserEntity {
    Long id;
    String name;
}

这是我的用户登录实体

class UserLoginEntity {
    @ManyToOne
    User user;
    String loginTime;
}

假设一个用户可以有很多登录时间。下面是为用户添加登录时间的 dto

class UserLoginDto {
    Long user; //User id foreign key
    String loginTime;
}

现在我无法转换UserLoginDto为,UserLoginEntity因为在 dto 我传递 user asLong并且它期望它是 type User。这可以通过模型映射器实用程序来完成吗?

标签: javahibernatespring-bootjpamodelmapper

解决方案


如果您使用的是 ModelMapper,那么您需要命名属性userId而不是user.

或者您可以将模型映射器配置设置为LOOSE

modelMapper.getConfiguration().setMatchingStrategy(MatchingStrategies.LOOSE);并重命名userid.

以下是一些关于如何创建 DTO 并将它们与ModelMapper


推荐阅读