spring引导Map结构Map器

zrfyljdw  于 2021-07-14  发布在  Java
关注(0)|答案(2)|浏览(342)

是否可以在mapstruct中使用不同的Map器?e、 我有这个Map绘制器

@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?

2skhul33

2skhul331#

下面的代码应该适合您,objmapper的daotodo()的生成实现将调用usermapper的daotodo(),您只需要指定 fromDatedate 由于属性名称不同。

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

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

7y4bm7vi2#

mapstruct有一个关于调用文档中其他Map器的完整部分。
当你想在你的Map器中使用其他Map器时,你需要使用 Mapper#uses .
例如

@Mapper(componentModel = "spring", uses = UserMapper.class)
public class ObjMapper{

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

相关问题