随笔-0  评论-0  文章-1  trackbacks-0

        最近做的项目需要用到Hibernate和Struts,以前曾经读过孙MM的《精通Hibernate》一书,受益匪浅,但是对于其中的检索策略了解的不是很深入,今天刚做了实验,验证了一些想法,若有不妥之处,望大家指教。

映射文件中的 outer-join=true lazy=true 时, get load 方法执行时将采用外连接检索 ;
outer-join=false
lazy=true 时, get load 方法执行时首先用 select 语句查看本对象,以后遍历到该对象的 Set 型成员变量时,进行对该 Set 型成员变量的 select 操作;
outer-join=false,lazy=false 时, get load 方法执行时首先用 select 语句查看本对象,然后进行对该 Set 型成员变量的 select 操作;
outer-join=true lazy=false 时,同 outer-join=true lazy=true


映射文件中的
outer-join 属性对于 createQuery 形成的 HQL 查询没有影响。对于 HQL 语言 ”from 类名 来说, lazy=true 时,首先用 select 语句查看本对象,以后遍历到该对象的 Set 型成员变量时,进行对该 Set 型成员变量的 select 操作; lazy=false 时,首先用 select 语句查看本对象,然后进行对该 Set 型成员变量的 select 操作。

 

对于 batch-size 用于减少非连接操作时的 select 语句的数目,例如当 outer-join=false 时,对于 lazy=true, 采用延迟批量检索 ( 将第一个 select 语句找到的记录,在第二次执行多个 select 时,根据上一个 select 查询结果提供的条件,来减少 select 语句的个数 )

posted on 2006-05-15 18:23 chillwarmoon 阅读(122) 评论(0)  编辑  收藏

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


网站导航: