simon曦 2011-04-02
关键字:hibernate数据检索策略
我们知道,Hiberante是一个ORM工具,它使得我们能够直接去操纵对象而不是数据库中表。Hibernate的数据检索策略也是给予对对象的操作的。数据检索策略主要包括一下几种:立即加载,延迟加载,预先抓取和批量加载。其中前三个是统一级别的,三个当中智能选择其中一个,而批量加载则可以很好的整合前面三个,还有就是预先抓取和批量加载都是为了优化前面两种方式而形成的。同时对于配置文件中的某个属性一旦设为预先抓取,则其它的数据检索方式都对这个属性失效。
下面分别进行讨论:
1立即检索:立即检索的时候需要在配置文件添加属性lazy="false".当Hibernate在从数据库中取得字段值组装好一个对象后,会立即再组装此对象所关联的对象,如果这个对象还有关联对象,再组装这个关联对象。
2延迟加载:延迟加载不同,当组装完一个对象后,不立即组装和它关联的对象。
3预先抓取:Hibernate2.x版本:outer-join="true"Hibernate3.x版本:fetch="join"。和立即检索相比,预先抓取可以减少SQL语句的条数。
4批量加载:批量加载总是和立即加载或者延迟加载联系在一起的,分别为批量立即加载和批量延迟加载。