Java Mapstruct源是List,目标是direct属性
我想将UserDTO和UserGroupDTO映射为一个列表,其中User有address,它有所有的地址字段,Usergroup有单独的地址字段。请告诉我如何映射这些字段。目前没有官方支持,但有一个使用表达式的解决方法,如票据中所述: 这将适用于您的情况: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 =
@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属性始终包含相同数量的字段,并且顺序正确,否则基于列表索引的映射将无法按预期工作