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

使用其他映射器的Spring boot mapstruct映射器

戚飞雨
2023-03-14

是否可能在MapStruct中使用不同的映射器?我有这个映射器

@Component
@RequiredArgsConstructor
public class ObjMapperImpl implements ObjMapper{
    private final UserMapper userMapper;

    @Override
    public ObjDto daoToDto(Obj obj) {
        return ObjDto.builder()
                .meetLink(obj.getMeetLink())
                .date(obj.getFromDate().toLocalDate())
                .user(userMapper.daoToDto(obj.getUser()))
                .build();
    }
}

是否可以将此实现更改为MapStruct?

共有1个答案

韦棋
2023-03-14

下面的代码应该适用于您,ObjMapper的daoToDto()生成的实现将调用UserMapper的daoToDto(),您只需要指定从fromdatedate的映射,因为属性名不同。


@Mapper(component Model = "spring")
public class ObjMapper{

    @Mapping(source = "fromDate", target = "date")
    ObjDto daoToDto(Obj obj);
}

 类似资料:
  • 当我尝试通过枚举将源中的字符串映射到目标中的整数时。ModelMapper失败。 来源 目的地 字符串和整数之间的映射在枚举中定义

  • 我有两个对象,除了date成员外,其他成员都相同。在obj1中,date是java.sql.date,obj2.date是long(纪元)。 我需要编写一个映射器来将obj1映射到obj2。这就是我试图做的: 但是mapperImpl只有自己的日期转换实现: 我得到了: 这种转换的正确方式是什么?

  • 我正在构建一个REST API, 和ActiveBid类 和我的泽西请求映射器,它具有获取数据的逻辑 有人能帮我吗?我不知道和卡桑德拉共事会这么难。

  • 我有麻烦映射一个嵌套dto字段正确与MapStruct。我有几个DTO: 具有相应的映射器 到目前为止,一切工作都很好,生成的代码自动连接其他需要的映射器来正确地构建DTO。例如生成的仪器映射器实现 现在,当我试图创建一个包含嵌套工具dto的映射器时遇到了麻烦。映射器应使用instrumentMapper正确创建所需的dto。DTO: 映射器: 生成的代码: 现在media mapper得到了很好

  • 我正在使用Hibernate和JPA注释来映射我的类。当hibernate尝试映射这个类时,我遇到了一个问题 我的Social alStat类是: 我得到了这个错误: 我猜发生这种情况是因为我试图映射到一个基本类,但@ElementCollection注释不应该解决这个问题吗? 我的item类如下所示:

  • 前端将这个json发送到我的API 控制器: