当前位置: 主页 > mobile.38365365.com >

VO对象和PO对象之间的区别

2019-08-08 09:18

VO,ValueObject,PO,PersisentObject。它由一组属性和属性get和set方法组成。
从结构的角度来看,没有区别。
但它的含义和本质完全不同。
1)使用新关键字创建VO并通过GC回收。
将新数据添加到数据库时创建PO,并在从数据库中删除数据时删除PO。
它只能通过数据库连接生存,并且断开连接。
2)VO是一个有价值的对象。它只是一个业务对象。业务层中存在的业务对象。它由业务逻辑使用。他们生存的目的是为数据提供生存的场所。
PO具有状态,每个属性表示其当前状态。
这是物理数据对象的表示。
通过使用它,我们可以隔离我们的物理数据程序并简化对象数据和物理数据之间的转换。
3)VO属性取决于当前业务。也就是说,每个属性对应于当前商业逻辑所需的数据的名称。
采购订单的属性对应于数据库表的字段。
PO对象需要实现序列化接口。
VO是一个独立的JavaObject。
PO是Hibernate整合到其EntityMap中的对象。表示与数据库中的记录对应的Hibernate实体。确认事务后,PO更改将反映在实际数据库中。
如果PO与对应于会话的实体的容器(例如会话结束后的PO)断开连接,则此时它变为VO。
HibernateVO和HibernatePO的概念在系统级设计中存在一些问题。
与传统的MVC架构一样,模型层中的PO可以传递给其他层。
PO更新最终分配给实际数据库,因此将PO更改为另一个级别(例如View层)可能会对Model层造成意外损坏。
因此,通常,不应将直接PO传递给系统的其他层。一种解决方案是通过VO使用与PO相同的属性值并将其用作传输(事实上,此VO用作DataTransferObject,即所谓的DTO,此VO用于其他层将通过)。所需的数据传输


下一条:下一篇:没有了