MapStruct 不映射某些属性

MapStruct do not map some attributes

Mapstruct 在编译阶段抛出下一个错误:

ConfigsMapperImpl is not abstract and does not override abstract method toConfigs(ConfigsDTO)

同时 MapStruct 可以很好地为所有其他方法生成代码。

我想这是因为 Config 对象的字段比 ConfigsDTO 多。

@Mapper
public interface ConfigsMapper {

    ConfigsMapper INSTANCE = Mappers.getMapper(ConfigsMapper.class);

    ConfigsDTO ConfigsToConfigsDTO(Configs configs);

    List<ConfigsDTO> toConfigsDTOs(List<Configs> configs);

    @InheritInverseConfiguration
    Configs toConfigs(ConfigsDTO configsDTO);
}

在生成的方法实现中,源类型(例如 Configs)中的所有可读属性都将被复制到目标类型(例如 ConfigsDTO)中相应的 属性。如果 属性 在目标实体中有不同的名称,则可以通过 @Mapping 注释指定其名称。

注释@Mappings 定义源中的哪些属性将被传输到目标中的特定属性。注释定义要完成的@InheritInverseConfiguration 逆映射。

例如:

@Mapper
public interface ConfigsMapper {
    ConfigsMapper INSTANCE = Mappers.getMapper(ConfigsMapper.class);

    @Mappings({ 
        @Mapping(source = "configs1", target = "configsDTO1"),
        @Mapping(source = "configs2", target = "configsDTO2"),
        @Mapping(target = "somethingElse", constant="somethingElseOnDTO")
    })
    ConfigsDTO ConfigsToConfigsDTO(Configs configs);

    @InheritInverseConfiguration
    Configs toConfigs(ConfigsDTO configsDTO);
}