繁体   English   中英

重写从 orika 到 mapstruct 的集合映射

[英]Rewriting collection mapping from orika to mapstruct

你能告诉我如何使用@Mapping 重写从 orika 到 mapstruct 的映射吗?

factory.classMap(SomeEntity.class, SomeDto.class)
         .fieldAToB("items{innerItem.id}", "innerItemIds{}")
         .byDefault().register();

不使用额外的方法。

这是否存在编写类似内容的方式

@Mapping(source = "items{innerItem.id}", target = "innerItemIds{}")
SomeDto map(SomeEntity entity);

我并不完全熟悉 Orika 的工作原理。 但是,在 MapStruct 中,您可以为 MapStruct 无法提供的映射提供自定义方法。 如果不使用其他方法,就没有其他方法。

在您的情况下,您需要执行以下操作:

@Mapper
public interface MyMapper {


    @Mapping(target = "innerItemIds", source = "items")
    SomeDto map(SomeEntity entity);

    default String map(InnterItem item) {
        return item == null ? null : item.getId();
    }

}

您将使用@Mapping告诉 MapStruct 它需要将items集合映射到innerItemIds 我假设itemsCollection<InnerItem>并且innerItemIdsCollection<String>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM