我们专注孝感网站设计 孝感网站制作 孝感网站建设
成都网站建设公司服务热线:18982081108

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

Hibernate使用批量抓取技巧

大家都知道Hibernate可以充分有效的使用批量抓取,也就是说,如果仅一个访问代理(或集合),那么Hibernate将不载入其他未实例化的代理。

创新互联公司是一家专业提供宜春企业网站建设,专注与做网站、成都网站设计、成都h5网站建设、小程序制作等业务。10年已为宜春众多企业、政府机构等服务。创新互联专业网站制作公司优惠进行中。

Hibernate批量抓取是延迟查询抓取的优化方案,你可以在两种Hibernate批量抓取方案之间进行选择:在类级别和集合级别。

类/实体级别的批量抓取很容易理解。假设你在运行时将需要面对下面的问题:你在一个Session中载入了25个Cat实例,每个Cat实例都拥有一个引用成员owner, 其指向Person,而Person类是代理,同时lazy="true"。

如果你必须遍历整个cats集合,对每个元素调用getOwner()方法,Hibernate将会默认的执行25次SELECT查询,得到其owner的代理对象。这时,你可以通过在映射文件的Person属性,显式声明batch-size,改变其行为:

 
 
 
  1.  name="Person" batch-size="10">... 

随之,Hibernate将只需要执行三次查询,分别为10、10、 5。

你也可以在集合级别定义批量抓取。例如,如果每个Person都拥有一个延迟载入的Cats集合,现在,Sesssion中载入了10个person对象,遍历person集合将会引起10次SELECT查询,每次查询都会调用getCats()方法。如果你在Person的映射定义部分,允许对cats批量抓取, 那么,Hibernate将可以预先抓取整个集合。

请看例子:

 
 
 
  1.  name="Person"> 
  2.      name="cats" batch-size="3"> 
  3.         ...  
  4.      
  5.  

如果整个的batch-size是3(笔误?),那么Hibernate将会分四次执行SELECT查询,按照3、3、3、1的大小分别载入数据。这里的每次载入的数据量还具体依赖于当前Session中未实例化集合的个数。

如果你的模型中有嵌套的树状结构,例如典型的帐单-原料结构(bill-of-materials pattern),集合的Hibernate批量抓取是非常有用的。(尽管在更多情况下对树进行读取时,嵌套集合(nested set)或原料路径(materialized path)(××) 是更好的解决方法。)

【编辑推荐】

  1. 简述Hibernate中加载并存储对象
  2. Hibernate传播性持久化攻略
  3. 深入了解Hibernate自动状态检测
  4. 教你如何在Hibernate中实例化集合和代理
  5. Hinerbate单端关联代理颇析

文章题目:Hibernate使用批量抓取技巧
网页网址:http://www.ytofo.com/article/ccopejp.html

免费获取网站设计制作与品牌网站建设策划方案报价

网站设计 + 品牌建站,策划方案 + 精准报价,现在免费领!品牌要升级,官网先发力!免费领取网站设计制作方案 + 精准报价,专业团队帮你落地
提交需求

    联系我们

    18980820575
  • 手机:13518219792
  • 地址:湖北孝感市大悟城关镇鄂北物流城13栋125号
  • 24小时服务热线:18982081108

    网站建设服务

  • 网页设计
  • 网站制作
  • 网站开发

    网站推广服务

  • 营销网站建设
  • 百度快速排名
  • 整站网站推广

    网站运维服务

  • 基础维护
  • 网站改版
  • 网站维护

    FOLLOW US

  • 微信二维码

    微信二维码

Copyright © 2025 湖北孝感网站建设公司 湖北孝感网站建设公司-选我们!湖北专业的孝感网站制作公司!
All Rights Reserved 版权所有 鄂ICP备2025125038号-8