mapster映射怎么忽略空字符串

avatar
作者
筋斗云
阅读量:3

在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方法的逻辑来判断是否将空字符串映射为默认值。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!