Java Mapstruct源是List,目标是direct属性

Java Mapstruct源是List,目标是direct属性,java,mapping,mapstruct,Java,Mapping,Mapstruct,我想将UserDTO和UserGroupDTO映射为一个列表,其中User有address,它有所有的地址字段,Usergroup有单独的地址字段。请告诉我如何映射这些字段。目前没有官方支持,但有一个使用表达式的解决方法,如票据中所述: 这将适用于您的情况: @Mapper public abstract class UserDTOMapper { @Mapping( expression = "java(userDTO.getAddress().get(0))", target =

我想将UserDTO和UserGroupDTO映射为一个列表,其中User有address,它有所有的地址字段,Usergroup有单独的地址字段。请告诉我如何映射这些字段。

目前没有官方支持,但有一个使用表达式的解决方法,如票据中所述:

这将适用于您的情况:

@Mapper
public abstract class UserDTOMapper {

    @Mapping( expression = "java(userDTO.getAddress().get(0))", target = "street")
    @Mapping( expression = "java(userDTO.getAddress().get(1))", target = "zipCode")
    @Mapping( expression = "java(userDTO.getAddress().get(2))", target = "country")
    abstract public UserGroupDTO mapTo(UserDTO userDTO);

}
但您必须确保作为列表实现的address属性始终包含相同数量的字段,并且顺序正确,否则基于列表索引的映射将无法按预期工作