DAO模式和服务层的模型对象

时间:2018-09-25 14:38:01

标签: java oop dao many-to-one service-layer

说我在数据库中具有一对多关系的以下表:

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提供ID?我不想在我的电视模型对象中存储ID。该模型不应该对应用程序的存储层完全不了解吗?我什至不知道如何使用Television返回我的getAllTelevisions对象,因为填充其type字段将需要从{{1}内部调用我的TelevisionTypeDao },这会打败拥有服务层的意义。

有人可以澄清使用这种模式时如何处理这种情况吗?谢谢。

0 个答案:

没有答案