conditionQualifiedByName 未在此处与mapstruct 一起应用。
@Setter
public class BaseUpdateEmployeeMapper extends BaseDesktopMapper<Source, Target> {
@Named("isStringNotNullOrEmpty")
public boolean isStringNotNullOrEmpty(String input) {
return StringUtils.isNotEmpty(input);
}
}
@Mapper
public abstract class EmployeeMapper extends BaseMapper {
@Mappings({
@Mapping(source="gender", target="gender", conditionQualifiedByName="isStringNotNullOrEmpty", qualifiedByName="toGender"),
public abstract Target transformSource(Source employee);
}
@Generated(
value = "org.mapstruct.ap.MappingProcessor",
date = "2024-08-12T21:14:39+0530",
comments = "version: 1.5.5.Final, compiler: javac, environment: Java 11.0.23 (Homebrew)"
)
public class Target extends EmployeeMapper {
@Override
public Target transformSource(Source employee) {
if ( employee == null ) {
return null;
}
Target.Builder target = Target.newBuilder();
target.gender( toGender( employee.getGender() ) );
return target.build();
}
}
我想对字符串保留 null 和空检查,以避免将源性别映射到目标性别
如何解决这个问题?请帮忙
如果在 toGender() 之前进行检查,我希望能够使用 isStringNotNullOrEmpty 生成 Impl 代码,但只有 toGender 应用于映射员工性别。
条件没有被应用的原因是条件方法(
isStringNotNullOrEmpty
)应该用@Condition
注释才能被视为存在检查方法