[英]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
。 我假设items
是Collection<InnerItem>
并且innerItemIds
是Collection<String>
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.