mapster

mapster映射怎么忽略空字符串

小亿
603
2024-01-22 15:01:21
栏目: 编程语言

在MapStruct中,如果要忽略空字符串的映射,可以使用NullValueMappingStrategyExpression注解。

首先,在你的Mapper接口或类上添加nullValueMappingStrategy注解,并将其值设置为NullValueMappingStrategy.RETURN_DEFAULT。这将告诉MapStruct在映射时忽略空字符串。

例如:

@Mapper(nullValueMappingStrategy = NullValueMappingStrategy.RETURN_DEFAULT)
public interface MyMapper {
    // 映射方法
}

然后,在需要忽略空字符串的属性上添加Expression注解,并使用SpEL表达式指定一个条件来判断是否将空字符串映射为默认值。

例如,假设你有一个名为name的属性,你希望在映射时忽略空字符串,可以这样做:

@Mapping(target = "name", source = "name", qualifiedByName = "ignoreEmptyString")
DestinationObject map(SourceObject source);

@Named("ignoreEmptyString")
default String ignoreEmptyString(String value) {
    return value.isEmpty() ? null : value;
}

在上面的示例中,我们在映射方法的@Mapping注解中使用了qualifiedByName属性,并指定为ignoreEmptyString。然后,我们在Mapper接口中添加了一个名为ignoreEmptyString的默认方法,该方法接受一个字符串参数并返回一个字符串。在该方法中,我们使用了一个条件,如果字符串为空,则返回null;否则,返回原始字符串。

这样,MapStruct在映射时会根据ignoreEmptyString方法的逻辑来判断是否将空字符串映射为默认值。

0
看了该问题的人还看了