javaeye又出了一贴,是关于这个论题的:http://forum.iteye.com/viewtopic.php?t=5282
我只是把我的理解说一下:
为什么要把O/R映射得到的Object说为PO呢?对,是的,它是由Hibernate或者iBatis这些ORM中间件生成的持久对象,所以就是PO(废话!),不过你只要仔细回头一想想,也许PO不能只认为是PO,他应该是DO,也就是域对象,拥有对其个体数据进行操作的对象。
我们返回来去想想ORM出现的原因吧。在JDBC时代,我们头痛的是怎样把RDBMS中的记录读取出来映射成我们的域对象,也就是说,我们通过JDBC读取数据,然后生成DO,然后把DO用于整个业务逻辑层,DO代表着实体对象。直到Hibernate这样的中间件的出现,则彻底解决了上述所说的难题,也就是说ORM的任务是把RDBMS数据库中的记录转换成我们域对象DO。
这样问题就演进到DO是否应该提升到View层了。
有人说要用到DTO,也就是数据传输对象,也就是把DTO包装成没有逻辑意义的值对象提交到View层,从而把lazyloading的DO平面化,在大型的分布式J2EE项目中这样是很好的,可是面临一个问题,就是当业务逻辑层返回的是一个集(Set or List)怎么办?唉,没办法,转换它吧(仔细数一下,总共进行了3次循环,在JDBC底层一次,在业务逻辑层一次,在view层一次,而且每一次都是类似的转换一下而已,如果是分布式的,那么这样服务器受到的压力就不会很大)。所以在小型的不存在分布式Java Web中,一般都是把DTO上传到View层(减少一次循环)。
-------------------------
师兄跑去卖家俱去了,哈,一个程序员跑去卖家俱,有趣……
也难说,弄不好我比他还惨,还离奇呢!!
分享到:
相关推荐
本文主要探讨Spring如何贯穿整个中间层,将Web层、Service层、DAO层以及PO(Plain Old Java Object)无缝整合起来。 #### 二、Spring框架的关键作用 1. **无缝整合**:Spring框架的一个显著特点是能够将不同的技术...
Oracle PR 和PO 审批流程,审批层次建立
在SAP PO(Process Orchestration)的集成接口管理和运维中,可能会遇到各种问题,以下是一些常见的问题及其处理办法: 1. **停机堵塞,消息处于STOP状态**: 当许多消息停留在STOP状态,而没有错误日志时,可以先...
PO涉及到AS(Automation Station,自动化站)和OS(Operating Station,操作站)两个层面。 1. AS RT PO(AS实时过程对象): AS RT PO授权主要针对AS CPU(控制器)上的过程对象。每个AS CPU可以装载的PO数量在...
- 在使用`BAPI_PO_CHANGE`修改PO时,需要确保有足够的权限,并且需要了解所修改的数据是否会影响到其他相关的业务流程。 - 对于大型数据集的处理,需要考虑性能问题,避免长时间运行导致系统响应变慢。 - 测试环境与...
SAP PO 流程集成平台是一个企业服务总线(ESB)平台,由 SAP 提供,基于 J2EE 架构,基于开放标准,是涵盖 SOA 建模与设计、应用到应用的集成(A2A)、业务到业务的集成(B2B)、以及跨系统业务流程管理的完整解决...
具体来说,Spring可以将Web层、Service层、DAO层以及PO(Plain Old Java Object)对象无缝整合在一起,形成一个完整而高效的应用程序架构。 - **Web层**:处理与用户交互相关的部分,如HTTP请求的接收、处理以及...
《SAP PI/SAP PO 详细教程:从基础到实践》 SAP PI(Process Integration)和SAP PO(Process Orchestration)是SAP提供的集成解决方案,用于连接不同的业务系统,实现数据交换和流程自动化。本教程将带你深入了解...
AS RT PO(Automation Station Real-Time Process Object)是针对AS站(即工程师站)的授权,每个AS CPU能够装载的PO数会在ES站下载程序到CPU时进行校验。这个授权安装在ES站上。AS RT PO的数量取决于项目中涉及的可...
在SAP系统中,PR(Purchase Requisition)与PO(Purchase Order)是采购流程中的两个重要环节。PR作为采购请求,通常由需求部门发起,表示对某种物料或服务的需求;而PO则是采购订单,由采购部门基于PR创建,用于向...
3. VO(View Object):视图对象,主要用于表现层,如JSP页面或Web服务的响应。VO包含了展示数据所需的所有属性,通常不含任何业务逻辑,只用于数据的展示。它们是将数据从服务层传递到前端展示时使用的中间对象,...
正因为这样,PO 独立出来,数据持久层也就独立出来了,它不会受到任何业务的干涉。 TO(Transfer Object)是数据传输对象,通常用于应用程序不同 tie(关系)之间传输的对象。BO(Business Object)是业务对象,从...
SAP中间件PO技术是SAP企业应用集成(Enterprise Application Integration, EAI)的重要组成部分,主要涉及SAP Process Orchestration(简称PO)的配置和实施。PO作为一个全面的集成平台,结合了XI(Exchange ...
**SMSL双木三林PO100简介** SMSL双木三林PO100是一款专为音乐爱好者设计的高性能USB数字音频接口。这款设备以其小巧的体积、高效的XMOS设计以及丰富的数字输出选项而备受青睐。PO100的主要特点包括Type-c USB输入...
在Java开发领域,尤其是涉及到Spring框架以及数据持久化时,我们常常会遇到“PO”(Plain Old Java Object)和“VO”(Value Object)这两个概念。它们都是Java对象,但各自有不同的用途和特点。理解它们的区别对于...
《SAP接口总线PI/PO官方文档BIT300_EN_Col54》是SAP公司提供的关于其集成平台SAP Process Integration (PI) 和 Process Orchestration (PO) 的详细技术指南。该文档已经转化为HTML格式,方便用户通过谷歌浏览器进行...
PI-PO的SPECPI-PO的SPECPI-PO的SPEC
- 在实际开发中,PO对象常用于封装数据层查询或修改的结果,便于在其他层(如业务逻辑层或表现层)使用。 #### 三、VO (Value Object) 值对象 **定义:** - VO是一种只包含数据属性的简单Java对象,通常用于封装...
【标题】:“Appium Python PO模式” 在自动化测试领域,Appium是一款强大的开源工具,用于进行移动应用(Android和iOS)的自动化测试。它利用WebDriver协议,使得测试工程师可以使用多种编程语言(如Python)来...
2.使用过程中如有问题,请联系deshuai.kong 3.功能 1.自动根据配置文件中的java 自动 转换为 C# po 2.有版本控制功能,工具会自动对比老文件和新文件,会自动添加“修改记录”,版本号自动加1(使用该功能,必须...