MapStruct 中有 EmptyStringCheckStrategy 吗?

Is there a EmptyStringCheckStrategy in MapStruct?

我想从 DTO 映射到实体。为此,我使用 MapStruct。我想在 null 检查和 emptycheck 上执行所有 String 字段,如:

if(name != null && !name.isEmpty()) {...} 或者

更好

(StringUtils.isNotBlank(name)) {...}

我看到在 MapperConfig 中我们可以配置 null 检查:

nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS

是否可以配置空检查?

这目前是不可能的。我记得在 MapStruct 问题跟踪器中看到一个关于类似问题的问题。也许 mapstruct/mapstruct#879.

一种方法是在您的对象上添加一个 cust hasName() 方法,然后使用 StringUtils.isNotBlank(name)

或者,您可以定义一个方法:

default String toString(String in) {
   if ( in != null && !in.isEmpty() {
       return in;
   }
   return null;
}