在Spring Rest API中构造我的DTO时遇到问题。我的许多DTO是从同一实体创建的,但它们包含不同的字段。例如:
@Data
public class CarInfoDto {
private int year;
private String name;
}
@Data
public class CarDetailedInfoDto {
private int year;
private String name;
private String photoUrl;
private String color;
}
它们都是从以下位置创建(使用MapStruct映射):
@Entity
@Data
public class Car {
private int id;
private int year;
private String name;
private String photoUrl;
private String color;
}
到目前为止,继承似乎是处理此问题的最佳方法(DetailedInfoDto扩展了InfoDto)。但是e.i.如果我不想在我的DetailedInfoDto中显示所有InfoDto的字段,则需要创建单独的BaseInfoDto,以便InfoDto和DetailedInfo可以对其进行扩展。如果继承树变大,DTO将失去其可读性和可扩展性。为每个DTO设置单独的类对我没有吸引力。