gpt4 book ai didi

java - Mapstruct:如何限定 IterableMapping 函数

转载 作者:行者123 更新时间:2023-11-30 06:12:44 25 4
gpt4 key购买 nike

我在实体和 DTO 之间有一个映射器:

@Mapper(componentModel="cdi", uses = { RegionMapper.class })
public interface ClusterMapper {
@Mapping(target="regions", ignore=true)
ClusterDto map(Cluster entity);

ClusterDto mapWithRegions(Cluster entity);
}

第一个映射函数是“简单映射”以列出实体,第二个映射函数用于详细 View 。我想要 List 等效项,所以我有一个注释:

@Qualifier
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.SOURCE)
public @interface Simple {
}

并将此限定符添加到第一个映射函数和列表函数:

@Mapper(componentModel="cdi", uses={RegionMapper.class})
public interface ClusterMapper {
@Simple // <====
@Mapping(target="regions", ignore=true)
ClusterDto map(Cluster entity);

ClusterDto mapWithRegions(Cluster entity);

@IterableMapping(qualifiedBy = Simple.class) // <====
List<ClusterDto> map(List<Cluster> entities);

}

但即使使用 @Simple 注释,我也会收到一条错误消息:

Ambiguous mapping methods found for mapping collection element to...

如何让 List map(List) 函数“选择”第一个映射函数?

最佳答案

好吧,我犯了一个错误:对于我的 @Simple 注释,我导入了 javax.inject.Qualifier 而不是 org.mapstruct.Qualifier.

关于java - Mapstruct:如何限定 IterableMapping 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32586741/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com