hibernate 检索优化
- 不浪费内存
- 提高查询效率
类级别的检索策略
- lazy=false - 立即检索
- lazy=true - 延迟检索
- batch-size=x - 批量预抓取数量设置
一对多和多对多set属性检索策略
- lazy=[true|false|extra]:true为延迟检索;false为立即检索;extra为增强延迟检索:例如只使用size()方法,则只会发送一条count的sql语句。
- 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失效
- batch-size=3:批量预抓取默认为1,一次初始化只初始自己,一次初始化set集合的数量 - select * from id in (?,?,?)
多对一和一对一的many-to-one属性
- lazy=[proxy|no-proxy|false]
- fetch=[join|select]
参照上面分析