Hibernate-检索策略

Hibernate主要检索策略主要有即时检索, 延迟检索, 批量检索(batch-size), 迫切左外连接检索(outer-join)。 即时检索, 延迟检索, 批量检索分为类级别和级联级别。 只有LOAD方法可以使用类级别的延迟检索,get() 和 find()将忽略类级别的延迟检索, 总使用即时检索策略。 find()还同时忽略级联级别的迫切左外连接检索(一对多, 多对多情况下)。 LOAD()在类级别的延迟将建立一个代理对象。 set将一直设立一个代理对象(实现SET)然后用代理对象指向实际应用。 HIBERNATE.PROPERTIES中的 maz-fetch-depth可以指定迫切左外连接的层次结构。 如果不实用迫切左外连接, 则对每条级联的检索数据会产生一天SELECT语句, 这样SELECT语句数目太多会影响性能, 但是外连接的过多, 会涉及到表与表之间的关联等等, 需要 在SELECT数目与外连接上做一个权衡。 如果一个映射文件中有很多个SET, 只有一个SET 的OUTER-JOIN可以为TRUE(HIBERNATE实现, 为了提高性能. 一般在类级别采用立即检索, 在一对多, 或多对多情况下采用延迟检索, 在一对一, 多对一下采用迫切左外连接检索。 可以在代码中指定检索策略。 get()如果级联的对象为空则返回NULL值。 为什么不才用SQL语言进行检索? 需要封装成对象, 检查内存中有无重复的对象。 find()方法只能进行静态查询, 将被QUERY接口所取代!

posted on 2006-08-28 08:40 Sheldon Sun 阅读(345) 评论(1)  编辑  收藏

评论

# re: Hibernate-检索策略 2008-05-21 16:22 受伤

受伤  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问  
 
<2024年12月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

导航

统计

常用链接

留言簿(3)

随笔档案

文章档案

搜索

最新评论

阅读排行榜

评论排行榜