2015-09-15 73 views
1

У меня есть картографа между субъектом и DTO:Mapstruct: как квалифицировать функцию IterableMapping

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

    ClusterDto mapWithRegions(Cluster entity); 
} 

Первая функцией отображением является «простым отображением» в список объектов, вторые один для подробного Посмотреть. Я хотел бы иметь эквивалент списка, так что я аннотацию:

@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 аннотаций, у меня есть сообщение об ошибке:

неоднозначных методов отображения найденных для сбора отображения элемента в ...

Как я могу сделать функцию List map(List) «выбрать» первую функцию отображения?

ответ

4

Хорошо, я сделал ошибку: для моего @Simple аннотация, я импортировал javax.inject.Qualifier вместо org.mapstruct.Qualifier.

 Смежные вопросы

  • Нет связанных вопросов^_^