【发布时间】:2021-05-06 13:30:29
【问题描述】:
我正在尝试将两个对象的信息映射到一个对象中。
@Mapper(componentModel = "spring")
public abstract class FooMapper {
// some @Mapping-Annotations
public abstract TargetObject map(ObjectA a, ObjectB b);
}
Mapstruct 生成如下内容:
@Component
public class FooMapperImpl extends FooMapper {
@Override
public TargetObject map(ObjectA a, ObjectB b) {
if ( a == null && b== null ) {
return null;
}
// rest of the code
}
}
因此,为了从 map 函数中接收 null,a 和 b 必须为 null。在我的情况下,如果 just a(不管 b)是 null,我还希望返回 null。而且我很确定也可能存在这样的用例,即希望在 至少一个 源对象为 null 时立即返回 null。
有没有办法配置映射器、方法或注释源对象以实现这样的行为?
我已经尝试将 nullValueMappingStrategy 和 nullValueCheckStrategy 配置到 @Mapper- 和/或 @Mapping-Annotations。但是通过这些策略,我无法拆分源对象的空检查。
【问题讨论】:
标签: java spring mapping mapstruct