繁体   English   中英

Mapstruct 忽略 @BeanMappingqualifiedByName

[英]Mapstruct ignores @BeanMapping qualifiedByName

我正在尝试将分离@AfterMaping / @BeforeMapping方法用于 2 种方法: toDtotoPartialDto ,但 MapStruct 生成代码,其中使用了所有@AfterMaping / @BeforeMapping方法。 我尝试将我的抽象 class 重新设计为接口,但问题仍然存在。

    @BeanMapping(qualifiedByName = {"method1", "method2", "method3"})
    public abstract MyDto toDto(MyEntity entity);

    @Named("toPartialDto")
    @BeanMapping(ignoreByDefault = true, qualifiedByName = {"method3", "method4"})
    public abstract MyDto toPartialDto(MyEntity entity);

    @Named("method1")
    @BeforeMapping
    protected void setField1Data(@MappingTarget MyDto target, MyEntity entity) {
       //some code
    }

    @Named("method2")
    @AfterMapping
    protected void updateDto(@MappingTarget MyDto target, MyEntity entity) {
         //some code
    }

    @Named("method3")
    @AfterMapping
    protected void resolveOwn(@MappingTarget MyDto dto) {
       //some code
    }

    @Named("method4")
    @AfterMapping
    protected void mapPartial(@MappingTarget MyDto target, MyEntity entity) {
       //some code
    }

MapStruct 不会忽略qualifiers 当您在BeanMapping#qualifiedByName中定义多个限定符时,MapStruct 将尝试匹配所有它们。 这主要是为了让特定的合格 class 具有合格的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM