【问题标题】:Is it possible to use one propertyMap for ModelMapper (in spring boot) to map in both directions (DTO to Entity and Entity to DTO)?是否可以使用 ModelMapper 的一个 propertyMap(在 spring boot 中)在两个方向上映射(DTO 到实体和实体到 DTO)?
【发布时间】:2021-03-13 05:53:09
【问题描述】:

早上好,我在 Spring Boot 中使用 Model Mapper 将我的实体转换为 DTO(我配置了 Model Mapper 购买设置正确的属性 Map),但我无法使用相同的属性 Map 将相同的 DTO 转换为实体.

我认为一个 Property Map 足以在两个方向上进行映射: 我的地图:

public class UserPropertyMap extends PropertyMap<UserEntity, UserDTO> {
    @Override
    protected void configure() {
        map().setId_user(source.getId());
        map().setName(source.getName());
        map().setId_profile(source.getProfile().getId());
    }
}

提前致谢

【问题讨论】:

  • 如果你不拘泥于使用 ModelMapper,mapstruct 是一个非常好用的映射框架
  • 感谢您的建议,我看到 mapStruct 得到了 @InheritInverseConfiguration 来反转地图

标签: java spring spring-boot


【解决方案1】:

使用当前的 ModelMapper 版本 2.4.2,这是不可能恐怕。

原因是,如果 ModelMapper 只知道如何将源映射到目标,则很难定义如何将目标映射到源。

例如,如果我们有一个转换器toUpperCase 使用将entity.firstName 映射到dto.firstName,就像这样using(toUpperCase).map(entity.firstName, dto.firstName)
我们如何反向映射这个?

有一个相关的github issue。看看吧!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-13
    • 1970-01-01
    • 1970-01-01
    • 2017-09-17
    • 1970-01-01
    • 1970-01-01
    • 2021-10-28
    相关资源
    最近更新 更多