5 页 共 12 页
延迟加载机制是为了避开一些无谓的性能开销而提出来的,所谓延迟加载就是当在真正须要数据的时候,才真正执行数据加载操作。在Hibernate中供应了对实体对象的延迟加载以及对集合的延迟加载,另外在Hibernate3中还供应了对属性的延迟加载。
hibernate中lazy的运用
hibernate中lazy的运用 (2008-09-12 13:57:47)
标签:杂谈分类:hibernate
hibernate中lazy的运用
lazy,延迟加载
Lazy的有效期:只有在seion打开的时候才有效;seion关闭后lazy就没效了。
lazy策略可以用在:
* 标签上:可以取值true/false
* 标签上,可以取值true/false,这个特性须要类增加
* /等集合上,可以取值为true/false/extra
* /等标签上,可以取值false/proxy/no-proxy
一、概念:即两者之间存在关联关系,那么在加载主对象的时候,对副对象的加载处理,是延迟或马上,比如说公司(主)-》部门(副).二、分析
实现方法:将属性的lazy设为false,***@fetch = .
检索方式:加载主对象的同时加载副对象信息,反之亦然.
优点:即使当前seion关闭,处于游离状态,也能获得到关联对象.
缺点:执行的SQL太多,增加数据库压力,还可能加载一些不须要的对象,即奢侈时间,又奢侈缓存控件.
优先运用场合:
,须要马上访问关联对象时可以运用.
.
实现方法:将属性的lazy设为true,***@fetch = .
检索方式:不马上检索与之关联的对象,但是会为关联对象创建一个代理对象,这个代理对象只初始化一个OID,只有这个代理对象的属性被访问时,才初始化该代理对象.
优点,缺点:与马上检索相反.
优先运用场合:
.
.
什么时候用延迟加载
例如:银行开户,一个人可以开多个帐户,一个帐户只能属于一个人,所以在用户类里包含一个帐户的集合,帐户类里包含一个用户类型,他们之间是一对多的关系.
如过你在查询的时候,通过用户查询是,假如只想查到用户就用(hibernate)默认的延迟加载,这样效率也高,假如你想把该用户的的全部帐户都一同查出来,那就须要马上加载了,这样一来假如一个用户对应的帐户比较多的话,他的效率是很低的.
设置加载方式一般有两种,一种是通过映射文件(lazy=false),另一种是通过程序的方式来实现的也很简洁.
Struts2工作流程:
Struts2:
(1)客户端提交一个HttpSer
SSH总结面试题 来自淘豆网www.taodocs.com转载请标明出处.