SQnote
永远有多远……
SQnote - java,web优化,python,(www.sqnote.cn)

对象-关系的“阻抗不匹配”是一个很流行的词:指关系模型(它是基于表中规范化的数据,并且有良好的数学基础)和面向对象的世界(它是基于类,继承,多态等概念)之间的隔阂。

何时选择O/R映射

(在处理批量存取和批量更新时,O/R映射会有问题。如果应用程序需要大量进行这类操作,并且无法在对象映射层放置大量的缓存,那么以JDBC方式实现的基于数据集的关系型访问可能是最好的选择。)

1:针对领域对象的“加载/编辑/存储”流程,例如先加载一条产品记录,对其进行修改,然后更新回数据库
2:对象以批量查询的方式取出,但更新和删除则是单独进行。
3:大量对象需要积极地缓存。
4:在领域对象与数据库表/字段之间有一个相当自然的对应关系。
5:不需要对SQL进行特别的优化。在大多数时候,好的O/R映射解决方案可以把生成的SQL优化得相当好,例如Hibernate的“方言”(dialect)支持;但一些特殊的SQL优化只有在完全关系型的方式下才可能进行。

  Hibernate核心的连接接口是net.sf.hibernate.Session,通过它可以取得持久化对象、重建现有对象的关联等等。
和TopLink一样,Hibernate也是以“快照对比”的方式来执行变更侦测的。Hibernate借助CGLIB以动态字节码生成的方式为持久对象创建运行时代理,从而大大降低了快照对比的性能损耗。

 

posted on 2005-12-12 14:03  SQnote·www.SQnote.cn  阅读(158)  评论(0)    收藏  举报