Предположим, у меня есть следующая структура классов:
@MappedSuperclass
public abstract class Identifiable<T> {
@Id
@GeneratedValue
private T id;
//getters & setters
}
@Entity
@Table(name="purse")
public class Purse extends Identifiable<Long> {
private Integer ruAmount;
private Integer usdAmount;
private Integer eurAmount;
... // getters and setters with hibernate @Column annotations
}
@Entity
@Table(name="credit_card")
public class CreditCard extends Identifiable<Long> {
private Integer ruAmount;
private Integer usdAmount;
private Integer eurAmount;
... // getters and setters with hibernate @Column annotations
}
public class CreditCardDto {
private Integer ruAmount;
private Integer usdAmount;
private Integer eurAmount;
// getters and setters ...
}
Я думаю, что это не очень хорошо продуманная структура классов, потому что я дублирую одинаковые валютные поля в каждом классе.Более того, если мне нужно добавить новое поле валюты, мне придется добавить его к каждому классу.Можете ли вы предложить мне альтернативную структуру классов?