【发布时间】:2022-12-13 17:36:09
【问题描述】:
通常 MapStruct 仅在源字段不是null时才设置目标字段。但是,如果将 @Mapping 与 constant 一起使用,则生成的代码无论如何都会设置目标字段。我希望 MapStruct 仅在源字段不为空时设置目标字段,然后设置为常量值。
我目前最好的猜测是使用 qualifiedByName 子句,如下所示:
@Mapping(target = "targetField", source = "sourceField", qualifiedByName = METHOD_NAME)
和定义的方法:
@Named(METHOD_NAME)
static String mapTargetField(String sourceField) {
if (sourceField!= null) {
return CONSTANT;
}
return null;
}
对于这个简单的概念,有人知道更短的方法吗?
【问题讨论】:
-
您可以使用表达式。