Mapstruct:如何限定IterableMapping函数

Phi*_*day 2 java mapstruct

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

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

    ClusterDto mapWithRegions(Cluster entity);
}
Run Code Online (Sandbox Code Playgroud)

第一个映射函数是列出实体的"简单映射",第二个映射函数用于详细视图.我想要List等价,所以我有一个注释:

@Qualifier
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.SOURCE)
public @interface Simple {
}
Run Code Online (Sandbox Code Playgroud)

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

@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);

}
Run Code Online (Sandbox Code Playgroud)

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

找到用于将集合元素映射到...的模糊映射方法

如何使List map(List)功能"选择"第一个映射功能?

Phi*_*day 5

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