[英]Mapstruct ignores @BeanMapping qualifiedByName
我正在尝试将分离@AfterMaping
/ @BeforeMapping
方法用于 2 种方法: toDto
和toPartialDto
,但 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.