Как использовать @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
}
}