Mapstruct会在编译阶段抛出下一个错误:
ConfigsMapperImpl不是抽象的,也不会覆盖抽象 方法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);
}
答案 0 :(得分:3)
在生成的方法实现中,源类型(例如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);
}