Как использовать @Qualifier или @Named с @AfterMapping в mapstruct?

В своей документации (здесь: http://mapstruct.org/documentation/dev/api/org/mapstruct/AfterMapping.html) они упоминают, что @AfterMapping можно использовать с @Qualifier / @Named для фильтрации, но я могу ' не найти его где-нибудь, как на самом деле использовать это таким образом.

Моим лучшим предположением было использовать это так:

@Mapper
public abstract class CustomerMapper {

    @Named("Test")
    public abstract Customer map(CustomerDto dto);

    @Named("Test")
    @AfterMapping
    public void doAfterMapping(@MappingTarget Customer customer) {
        //do stuff
    }
}

Но это, кажется, ничего не делает (если я удаляю аннотации @Named, это работает, но это также используется в других методах, которые я не хочу).. Кто-нибудь знает, как это нужно использовать?

1 ответ

Я получил помощь в их чатах, если кто-то ищет то же самое, это можно сделать с помощью @BeanMapping следующим образом:

@Mapper
public abstract class CustomerMapper {

    @BeanMapping(qualifiedByName = "Test")
    public abstract Customer map(CustomerDto dto);

    @Named("Test")
    @AfterMapping
    public void doAfterMapping(@MappingTarget Customer customer) {
        //do stuff
    }
}
Другие вопросы по тегам