我试图把两个物体的信息Map到一个物体上。
@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。在我的例子中,如果a(不管b)为null,我也希望返回null。我很确定也有一些用例,其中一个希望在至少一个源对象为null时立即返回null。
有没有办法为这样的行为配置Map器、方法或注解源对象?
我已经尝试将nullvaluemappingstrategy和nullvaluecheckstrategy配置到@mapper和/或@mapping注解。但是使用这些策略,我无法分割源对象的空检查。
1条答案
按热度按时间h9a6wy2h1#
实现此目的的一种方法是,可以在Map器中添加默认方法,如下所示: