Объекты модели для шаблона DAO и сервисного уровня - PullRequest
0 голосов
/ 25 сентября 2018

Скажем, у меня есть следующие таблицы в базе данных с отношением один ко многим:

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, что лишило бы смысла иметьуровень обслуживания.

Может кто-нибудь прояснить, как управляется подобная ситуация при использовании этого шаблона?Спасибо.

...