zoukankan      html  css  js  c++  java
  • Hibernate批量抓取

    ------------------siwuxie095

       

       

       

       

       

       

       

    Hibernate 批量抓取

       

       

    以客户和联系人为例(一对多)

       

       

    1、批量抓取

       

    同时查询多个对象的关联对象,是 Hibernate 抓取策略的一种

       

       

       

       

    2、一般情况下,会发送多条 sql 语句,效率低下

       

    如:查询所有客户,返回 List 集合,遍历该 List 集合,得到每

    个客户的所有联系人

       

       

       

    // 查询所有客户

    Criteria criteria=session.createCriteria(Customer.class);

    List<Customer> list=criteria.list();

    // 得到每个客户的所有联系人

    for (Customer customer : list) {

    System.out.println(customer.getCid()+"::"+customer.getCustName());

    Set<LinkMan> linkMans=customer.getLinkManSet();

    for (LinkMan linkMan : linkMans) {

    System.out.println("---"+linkMan.getLid()+"::"+linkMan.getLkmName());

    }

    }

       

       

       

       

    3、采用批量抓取进行优化,减少 sql 语句的发送条数

       

    1)在客户的映射配置文件中的 set 标签上添加 batch-size 属性

       

    2)batch-size 的值越大,发送的 sql 语句条数越少

       

       

       

    「显然,数据量越大,效果越明显」

       

       

       

       

       

       

       

       

       

    【made by siwuxie095】

  • 相关阅读:
    复杂对象创建终结者(Builder Pattern)
    创建型模式特立独行的两位大侠
    工厂模式(Factory)
    MAC 相关
    iOS 地图相关
    iOS字体相关
    App跳转系统设置界面
    Mac 模拟慢速网络
    Thread1:EXC_BAD_ACCESS 错误
    iOS 统计App 的代码总行数
  • 原文地址:https://www.cnblogs.com/siwuxie095/p/7302643.html
Copyright © 2011-2022 走看看