1

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

ConfigsMapperImpl 不是抽象的,不会覆盖抽象方法 toConfigs(ConfigsDTO)

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

我想这是因为Configobject 的字段比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);
}
4

1 回答 1

4

在生成的方法实现中,来自源类型(例如 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);
}
于 2017-01-04T16:09:50.790 回答