首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

抓取谋略优化

2012-11-20 
抓取策略优化?抓取策略是指Hibernate如何检索关联对象,抓取策略可以通过映射设置,也可以在HQL和规则查询中

抓取策略优化

?抓取策略是指Hibernate如何检索关联对象,抓取策略可以通过映射设置,也可以在HQL和规则查询中重写。Hibernate支持以下几种抓取策略:
????????????join……使用外连接抓取。
????????????Select……使用一个单独的查询语句抓取关联数据。
????????????Subselect……
????????????Batch……select抓取的优化,通过指定一个主键或外键列表使用一个单独的查询语句中进行抓取。

??????同时Hibernate区分如下几种抓取方式:
????????????Immediate……立即加载
????????????Lazy……懒加载,需要时加载整个集合
????????????Extra-lazy……按需加载集合中的单个元素,尽量不同时加载整个集合,适用于集合很大的情况。
????????????Proxy……当激活关联对象的某个方法而不是取值方法时检索单值关联。
????????????No-proxy……实例变量被访问时检索单值关联,相比proxy策略,这种方式少一些懒加载,要求构建二进制字节码,很少使用。
????????????Lazy attribute……当实例变量被访问时检索单值关联或属性,这种方式要求构建二进制字节码,很少使用。

???????以上分别决定什么时候加载以及怎样加载,缺省情况下Hibernate使用lazy select抓取关联集合,使用lazy proxy抓取单值关联。

???????如果设置hibernate.default_batch_fetch_size,,Hibernate将使用Batch抓取策略。

??????使用select策略通常会导致n+1次查询,这可以通过使用join策略解决,可以在hql和criteria中调用setFetchMode设置检索策略。

热点排行