持久性模型与视图模型

时间:2013-08-22 12:01:39

标签: java hibernate orm

有人可以举例说明“持久模型”应该与“视图模型”分开吗?为什么?

持久性模型:

@Entity
public class Employee {

    @Id
    private int id;

    // Some other stuff 

}

查看型号:

public class EmployeeModel {

    private int id;

    // Some other stuff 

}

他们不应分开的地方?

1 个答案:

答案 0 :(得分:4)

它们不应该分开:当它们完全匹配时,就像你的例子一样。

它们应该分开的地方:当它们不匹配时。例如,假设您要显示一个包含每行的表:

  • 员工姓名
  • 他所在部门的名称
  • 他参与的项目数量

这与任何持久性模型实体都不匹配,因为在持久性模型中,您将拥有一个Employee,与Department的ManyToOne关联,以及与Project的ManyToMany关联。要加载表中显示的数据,您将使用即席查询,该查询将使用连接从这三个实体加载所需的数据。