@Mapper(componentModel = "spring")
public interface SourceToTargetMapper {
Target map(Source source);
@BeanMapping(nullValuePropertyMappingStrategy = NullValuePropertyMappingStrategy.SET_TO_DEFAULT)
void update(Source source, @MappingTarget Target target);
}
整个技巧是定义nullValuePropertyMappingStrategy = NullValuePropertyMappingStrategy.SET_TO_DEFAULT,但您不能在 @Mapper 注释中定义它。取而代之的是,您必须将它作为参数放在update()方法的 @BeanMapping 注释中。您可以在MapStruct 文档中阅读更多相关信息。
第2步:
因此,您必须在代码中再执行一项操作并使用刚刚实现的“update()”方法:
@Component
public class ClassThatUsingMapper {
private final SourceToTargetMapper mapper;
public Target someMethodToMapObjects(Source source) {
Target target = mapper.map(source);
mapper.update(source, target)
return target;
}
}
所有null 到空 String 的过程都发生在mapper.update(source, target)method 下。为您的项目运行后mvn clean install,您可以检查它的外观以及它在target/generated-sources/annotations/...../SourceToTargetMapperImpl.java文件中的工作方式。
慕森王
相关分类