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状态,而没有错误日志时,可以先...
标题“采购订单测试问题.rar_EBS_QYBI_ebs po_ebs采购审批流_oracle”提及的是在进行PO测试时遇到的审批流问题。描述中提到,即使已经设置了所有必要的审批条件,审批仍然无法顺利通过。这种情况可能源于多种因素,...
PO涉及到AS(Automation Station,自动化站)和OS(Operating Station,操作站)两个层面。 1. AS RT PO(AS实时过程对象): AS RT PO授权主要针对AS CPU(控制器)上的过程对象。每个AS CPU可以装载的PO数量在...
3. VO(View Object):视图对象,主要用于表现层,如JSP页面或Web服务的响应。VO包含了展示数据所需的所有属性,通常不含任何业务逻辑,只用于数据的展示。它们是将数据从服务层传递到前端展示时使用的中间对象,...
- 在使用`BAPI_PO_CHANGE`修改PO时,需要确保有足够的权限,并且需要了解所修改的数据是否会影响到其他相关的业务流程。 - 对于大型数据集的处理,需要考虑性能问题,避免长时间运行导致系统响应变慢。 - 测试环境与...
具体来说,Spring可以将Web层、Service层、DAO层以及PO(Plain Old Java Object)对象无缝整合在一起,形成一个完整而高效的应用程序架构。 - **Web层**:处理与用户交互相关的部分,如HTTP请求的接收、处理以及...
AS RT PO(Automation Station Real-Time Process Object)是针对AS站(即工程师站)的授权,每个AS CPU能够装载的PO数会在ES站下载程序到CPU时进行校验。这个授权安装在ES站上。AS RT PO的数量取决于项目中涉及的可...
SAP PO(Process Orchestration,流程编排)流程集成平台,作为一款由SAP公司提供的企业服务总线(ESB)平台,为企业提供了从服务建模到业务流程管理,再到业务规则管理等一系列集成服务,有效整合企业内部及外部...
《SAP PI/SAP PO 详细教程:从基础到实践》 SAP PI(Process Integration)和SAP PO(Process Orchestration)是SAP提供的集成解决方案,用于连接不同的业务系统,实现数据交换和流程自动化。本教程将带你深入了解...
在SAP系统中,PR(Purchase Requisition)与PO(Purchase Order)是采购流程中的两个重要环节。PR作为采购请求,通常由需求部门发起,表示对某种物料或服务的需求;而PO则是采购订单,由采购部门基于PR创建,用于向...
**SMSL双木三林PO100简介** SMSL双木三林PO100是一款专为音乐爱好者设计的高性能USB数字音频接口。这款设备以其小巧的体积、高效的XMOS设计以及丰富的数字输出选项而备受青睐。PO100的主要特点包括Type-c USB输入...
正因为这样,PO 独立出来,数据持久层也就独立出来了,它不会受到任何业务的干涉。 TO(Transfer Object)是数据传输对象,通常用于应用程序不同 tie(关系)之间传输的对象。BO(Business Object)是业务对象,从...
SAP中间件PO技术是SAP企业应用集成(Enterprise Application Integration, EAI)的重要组成部分,主要涉及SAP Process Orchestration(简称PO)的配置和实施。PO作为一个全面的集成平台,结合了XI(Exchange ...
本文将详细介绍如何在IDEA中利用内置功能或插件来自动创建PO层(Plain Old Java Object)、DAO(Data Access Object)、SERVICE层以及添加Swagger注释,从而简化开发流程。 首先,让我们了解这些概念: 1. **PO层...
在Java开发领域,尤其是涉及到Spring框架以及数据持久化时,我们常常会遇到“PO”(Plain Old Java Object)和“VO”(Value Object)这两个概念。它们都是Java对象,但各自有不同的用途和特点。理解它们的区别对于...
PI-PO的SPECPI-PO的SPECPI-PO的SPEC
《SAP接口总线PI/PO官方文档BIT300_EN_Col54》是SAP公司提供的关于其集成平台SAP Process Integration (PI) 和 Process Orchestration (PO) 的详细技术指南。该文档已经转化为HTML格式,方便用户通过谷歌浏览器进行...
在进行 Unity 项目的本地化时,还需要考虑一些其他因素,比如日期和时间格式、货币符号、数字和度量单位的显示,以及文化相关的细节,如左到右或右到左的文本布局。开发者需要确保这些内容在设计时就考虑到可配置性...