hibernate 检索策略
检索数据时的两个问题:
1、不浪费内存:只查询需要的数据
2、更高的查询效率:发送尽可能少的 SQL 语句
类级别的检索策略:
1、立即检索
2、延迟检索(只初始化 OID,其余的属性只在使用的时候才会再加载)
通过 <class> 元素的 lazy 属性来设置
注意:此设置只对 load 方法有效
一对多和多对多的检索策略:
在映射文件中,用 <set> 元素来配置一对多和多对多的关联关系。<set> 元素主要有 lazy,fetch 属性
lazy:主要决定集合被初始化的时机,即到底是在加载对象时就被初始化,还是程序在访问集合时才被初始化(默认为true)
fetch:取值为 select 或 subselect 时,决定初始化集合的查询语句的形式,若取值为 join,则决定集合被初始化的时机
若把 fetch 设置为 join,则会忽略 lazy 属性
若把 fetch 设置为 subselect,则会忽略 batch-size 属性
batch-size:设定批量检索的数量。批量检索能减少 select 语句的数目,提高运行性能。
精诚所至,金石为开。