首页 文章

如何在mapstruct中使用@Qualifier或@Named和@AfterMapping?

提问于
浏览
0

在他们的文档中(这里: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 回答

  • 2

    我在他们的gitter聊天室得到了帮助,如果有人在寻找相同的东西,这对@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
        }
    }
    

相关问题