类级别的检索策略
立即检索
延迟检索
一对多和多对多关联的检索策略
立即检索
延迟检索
迫切左外连接检索
<Set>元素的lazy和outer-join属性:
lazy属性 outer-join属性
false false 采用立即检索策略,这是默认的检索策略
false true 采用迫切左外连接
true false 采用延迟检索策略,这是有限考虑使用的检索策略
true true 没有任何意义
多对一个关联的检索策略
立即检索
延迟检索
迫切左外连接检索
在应用程序中显示指定迫切左外连接策略
应用程序中设置的检索策略是固定的,Hibernate允许在应用程序中覆盖映射文件中设定的检索策略,由应用程序在运行时决定检索的深度
总结:
检索类型 优点 缺点
立即检索 不管对象处理持久化状态还是 select语句多
游离状态,可以方便地从一个对 加载应用程序不需要
象导航到关联的另一个对象 访问的对象浪费内存
--------------------------------------------------------------------------
延迟检索 由应用程序决定需要加载哪些对 应用程序如果需要访问
象,避免执行过多SQL语句以及避 游离状态的代理类实例,
免加载应用程序不需要访问的对 必须保证它在持久化状
象,提高检索性能,节省内存 态时已经被初始化
--------------------------------------------------------------------------
迫切左外 不管对象处于持久化状态还是游 可能会加载应用程序不需要
连接 离状态,应用程序都可以方便地从 访问的对象浪费内存
一个对象导航到管理的另一个对象 复杂的表连接影响检索性能
同时使用外连接减少了SQL语句
---------------------------------------------------------------------------------------------------------------------------------------------------
测试一:
测试二: