VO(DTO)与PO(DAO)的概念

VO(DTO)与PO(DAO)的概念


PO即 Persistence Object
VO即 Value Object

 
VO和PO的主要区别在于:
VO是独立的Java Object。
PO是由Hibernate纳入其实体容器(Entity Map)的对象,它代表了与数据库中某条记录对应的Hibernate实体,PO的变化在事务提交时将反应到实际数据库中。

     实际上,这个VO被用作Data Transfer Object,即所谓的DTO。想必,PO就是Data Access Object ---DAO了啦。为什么要有这二者之分呢?如在传统的MVC架构中,位于Model层的PO,是否允许被传递到其他层面。由于PO的更新最终将被映射到实际数据库中,如果PO在其他层面(如View层)发生了变动,那么可能会对Model层造成意想不到的破坏。

你可能感兴趣的:(VO(DTO)与PO(DAO)的概念)