MapStruct 1.3.0.Beta2将DTO传递给qualifiedByName方法

问题描述

我正在使用MapStruct 1.3.0 Beta2,我想通过DTO方法内部映射的qualifiedByName,例如:

@Mapper(componentModel = "spring")
public interface UserMapper {

  @Mapping(target = "id",qualifiedByName = "test")
  UserDTO entityToUser(User entity);

  @Named("test")
  default Integer test(UserDTO userDto) {
    return userDto.getId();
  }
}

显然,我必须执行更复杂的操作,这只是一个示例。有办法吗?

谢谢

解决方法

我已经解决了以下问题:

@Mapper(componentModel = "spring")
public interface UserMapper {

  UserDTO entityToUser(User entity);

  @AfterMapping
  default void test(User entity,@MappingTarget UserDTO userDto) {
      // some operations
  }
}

希望有帮助。