Скажем, у меня есть следующие таблицы в базе данных с отношением один ко многим:
Television
Столбцы: id (PK), описание, модель, brand_id (FK),type_id (FK)
Type
Столбцы: id (PK), имя
Для представления телевидения я могу создать следующий объект модели:
public class Television {
String description;
String model;
String brand;
TelevisionType type;
Television(String description, String model, String brand, TelevisionType type) {
this.description = description;
this.model = model;
this.brand = brand;
this.type = type;
}
}
public enum TelevisionType {
QLED,
OLED,
LCD
}
Базовая версия моих интерфейсов DAO может выглядеть следующим образом:
public interface TelevisionDao {
List<Television> getAllTelevisions();
}
public interface TelevisionTypeDao {
TelevisionType getTelevisionType(int id);
}
Но на моем уровне обслуживания, как я могу предоставить getTelevisionType идентификатор?Я не хочу хранить идентификатор в моем объекте модели телевидения.Разве модель не должна быть полностью слепой к уровню хранения моего приложения?Я даже не уверен, как бы я возвратил свой Television
объект, используя getAllTelevisions
, так как заполнение его поля type
потребовало бы вызова моего TelevisionTypeDao
из TelevisionDao
, что лишило бы смысла иметьуровень обслуживания.
Может кто-нибудь прояснить, как управляется подобная ситуация при использовании этого шаблона?Спасибо.