数据持久层(05)_PersistenctObject类

大笑微笑生气吐舌头吐舌头吐舌头吐舌头吐舌头吐舌头吐舌头吐舌头吐舌头吐舌头吐舌头生气微笑大笑


偷笑我爱北京天安门偷笑


偷笑天安门上太阳升偷笑


偷笑伟大领袖毛主席偷笑


偷笑指引我们向前进偷笑

偷笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑偷笑

<p><strong><font size="4">PersistenctObject类</font></strong></p> <ul> <li><font size="4">概述: </font> <ul> <li><font size="4">PersistentObject类:它封装了使单个对象持久化的行为,问题/业务域中的所有为由它派生.如 Customer类. </font> <li><font size="4">OID类:使用<font color="red">HIGH/LOW 方法</font>封装了对象ID相关的行为(不太明白!)</font></li></ul> <li><font size="4">类图:</font></li></ul> <p align="right"><font face="宋体" size="4"><img alt="PersistentObject类" hspace="0" src="/images/blog_csdn_net/masterlrc/23488/o_持久层设计_PersistentObject类.jpg" align="baseline" border="0" /></font></p> <ul> <li><font size="4"><font face="宋体">属性:</font> </font> <ul> <li><font size="4"><font face="宋体">isProxy:指示一个对象是否是一个代理。<font face="宋体">代理对象只包括系统和用户标识一个对象所需的最少信息,因为它们比完整的对象小,所以可以减少网络流量。当需要真正的对象时,发送给代理retrieve()消息,可以刷新对象的所有属性。例如,代理可以用于搜索结果或对象的简单列表。</font></font> </font> <li><font size="4"><font face="宋体">isPersistent:指示一个对象是否是从持久机制获取的(它已经存在于持久机制中还是新创建的),这将决定保存对象时生成insert还是update语句。</font> </font> <li><font face="宋体" size="4">timeStamp:时间戳,记录最后一次被应用程序访问的时间。用于数据并发控制。</font></li></ul> <li><font size="4"><font face="宋体">方法:</font> </font> <ul> <li><font size="4"><font face="宋体">这三个方法用于将对象持久化。</font> </font> <li><font face="宋体" size="4">Retrieve()方法:对对象进行Retrieve。它判断OID如果为空,则它会其于对象的当前属性创建一个RetrieveCriteria实例。根据RetrieveCriteria的返回值(零个、一个、多个对象),分别处理。例如:如果返回零个对象,说明当前对象还没有被除数持久化,要分配一个新OID给它;如果返回一个,你会将返回对象的值交换到当前对象中(在 Samlltalk中,调用 become: 方法);当返回多个对象时,你要确定哪个是你要的,或者干脆来个异常。</font></li></ul></li></ul> <p><font face="宋体" size="4"></font>&nbsp;</p>
阅读更多
文章标签: insert 网络
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭