如何在mapstruct中将@Qualifier或@Named与@AfterMapping一起使用?

时间:2018-10-10 18:07:21

标签: java mapstruct

在他们的文档(这里:see)中,他们提到@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 个答案:

答案 0 :(得分:2)

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