hibernate 检索策略

本文介绍Hibernate中通过调整检索策略来优化内存使用及查询效率的方法,包括立即检索与延迟检索的区别,批量预抓取数量设置的作用,以及不同检索策略对一对多、多对一等关系的影响。

hibernate 检索优化

  1. 不浪费内存
  2. 提高查询效率

类级别的检索策略

  1. lazy=false - 立即检索
  2. lazy=true - 延迟检索
  3. batch-size=x - 批量预抓取数量设置

一对多和多对多set属性检索策略

  1. lazy=[true|false|extra]:true为延迟检索;false为立即检索;extra为增强延迟检索:例如只使用size()方法,则只会发送一条count的sql语句。
  2. fetch=[join|select|subselect]:join为左外连接子表查询,所以lazy属性失效;select = select * from id in (1,2,3);subselect为子查询,select = select * from id in (select id from …) ,因此batch-size失效
  3. batch-size=3:批量预抓取默认为1,一次初始化只初始自己,一次初始化set集合的数量 - select * from id in (?,?,?)

多对一和一对一的many-to-one属性

  1. lazy=[proxy|no-proxy|false]
  2. fetch=[join|select]
    参照上面分析
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值