Spring使用其他映射程序启动mapstruct映射程序



是否可以在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?

下面的代码应该适用于您,ObjMapper的daoToDto((的生成实现将调用UserMapper的DaoToDdo((,由于属性名称的差异,您只需要指定从fromDatedate的映射。


@Mapper(component Model = "spring")
public class ObjMapper{
@Mapping(source = "fromDate", target = "date")
ObjDto daoToDto(Obj obj);
}

MapStruct在文档中有一整节关于调用其他映射程序。

如果要在映射器中使用其他映射器,则需要使用Mapper#uses

例如


@Mapper(componentModel = "spring", uses = UserMapper.class)
public class ObjMapper{
@Mapping(source = "fromDate", target = "date")
ObjDto daoToDto(Obj obj);
}

相关内容

  • 没有找到相关文章

最新更新