У меня проблема со структурированием моих DTO в Spring Rest API. Многие из моих 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;
}
До сих пор наследование, кажется, лучший способ справиться с этим (DetailInfoDto расширяет InfoDto). Но е.и. если я не хочу представлять все поля InfoDto в моем DetailInfoDto, мне нужно создать отдельный BaseInfoDto, чтобы InfoDto и DetailInfo могли его расширить. Если дерево наследования становится больше, DTO теряют читабельность и расширяемость. И делать отдельные занятия для каждого DTO мне не нравится.