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】

原文地址:https://www.cnblogs.com/siwuxie095/p/7302643.html