Mapstruct 显式映射到子类

Mapstruct explicitly map to subclass

提问人:ch1ll 提问时间:11/15/2023 最后编辑:ch1ll 更新时间:11/15/2023 访问量:11

问:

我有这些 DTOS:

public class AnimalDTO {
    
    Long id;
    String name;
   
}

public class DogDTO extends AnimalDTO {
    
    Long furType;
    String furColor;
    ...
}

public class FarmDTO {
    
    Long id;
    AnimalDTO mainAnimal;
    Double size;
    Integer employees;
    ...
}

public class FarmMinimalDTO {
    
    Long id;
    AnimalDTO mainAnimal;
   
}

如果现在在 Mapstruct 中,我会写如下内容:

@Mapper(config = MapperConfiguration.class) // nothing fancy in there
public abstract class FarmMapper {

       public abstract FarmMinimalDTO mapToFarmDTO(FarmDTO farmDTO);
}

如果 是 ,则 mapstruct 不会将其隐式转换为 .但是我输入 的重点是因为我希望在这个 DTO 中减少数据。farmDTO.mainAnimalDogDTOAnimalDTOAnimalDTOFarmMinimalDTO

我可以用mapstruct配置吗?还是我必须单独映射?

或者这已经是一个危险信号?我继承了这个项目,在我上一个项目中,我喜欢让我的 DTO 不纠缠,尽管这意味着重复的代码。DogDTO extends AnimalDTO

Java 继承 mapstruct

评论


答: 暂无答案