我正在尝试映射这个对象
public class Source {
private String value1;
private String value2;
private String value3;
}
进入此对象
public class Target {
private String targetValue1;
private String targetValue2;
private String targetValue3;
}
这是映射器定义。
@Mapper
public interface SourceMapper {
void toTarget(Source source, @MappingTarget Target target);
}
我想要实现的目标是仅当 target
中的字段为 null< 时才将
。例如,当 source
中的字段映射到 target
/target.targetValue1
为 null
时,source.value1
仅映射到 target.targetValue1
。如果它不为 null
,则忽略该字段的映射。
是否可以使用 MapStruct 而无需编写自定义代码?
编辑
我更改了 Target
的字段名称,以明确 Target
的名称可能/可能不匹配 Source
中的字段名称.
最佳答案
我认为这不能用mapstruct 来完成。如果您仍想使用mapstruct,则可以使用@Mapping (target =" propName ", ignore = true)
忽略可能为null的目标变量。并通过 @AfterMapping
自行决定设置目标变量时的方法。
关于java - 仅当目标字段为空时,MapStruct 将字段映射到目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59740439/