具有多个参数的 Map 结构限定名称
我遇到过这样的情况:我的映射方法有 3 个参数,并且所有这三个参数都用于派生目标类型的一个属性。
我已经在接口中创建了一个默认的映射方法,保留了用于派生属性的逻辑,现在为了调用此方法,我可以在注释中使用。expression = "java( /*method call here*/ )"
@Mapping
有没有办法用任何映射结构注释来做到这一点,比如,我尝试用表达式属性注释注释注释并使用qualifiedByName,但它不起作用:@qualifiedByName
@Mapper
public interface OneMapper {
@Mapping(target="id", source="one.id")
//@Mapping(target="qualified",expression = "java( checkQualified (one, projId, code) )")
@Mapping(target="qualified",qualifiedByName="checkQualifiedNamed")
OneDto createOne (One one, Integer projId, Integer val, String code);
@Named("checkQualifiedNamed")
default Boolean checkQualified (One one, Integer projId, Integer val, String code) {
if(one.getProjectId() == projId && one.getVal() == val && one.getCode().equalsIgnoreCase(code)) {
return Boolean.TRUE;
}
return Boolean.FALSE;
}
}