一、类级别查询
get方法:没有任何策略,调用即立即查询数据库加载数据。
load方法:应用类级别的加载策略
<class name="Customer" table="cst_customer" lazy="false" >lazy(默认值):true,查询类时,会返回代理对象,会在使用属性时,根据关联的session查询数据库,加载数据
lazy:false. load方法会与get方法没有任何区别,调用时即加载数据
结论:为了提高效率,建议使用延迟加载(懒加载)
注意:使用懒加载时要确保,调用属性加载数据时,session还是打开的,不然会抛出异常
二、关联级别查询
1、集合策略
lazy属性: 决定是否延迟加载 true(默认值): 延迟加载,懒加载 false: 立即加载 extra: 极其懒惰 fetch属性: 决定加载策略.使用什么类型的sql语句加载集合数据 select(默认值): 单表查询加载 join: 使用多表查询加载集合 subselect:使用子查询加载集合2、关联属性策略
fetch 决定加载的sql语句 select: 使用单表查询 join : 多表查询 lazy 决定加载时机 false: 立即加载 proxy: 由customer的类级别加载策略决定.
结论:为了提高效率,fetch的选择上应选择select, lazy的取值应选择true, 全部使用默认值
no-session问题解决:扩大session的作用范围
三、批量抓取
<!-- batch-size: 抓取集合的数量为3. 抓取客户的集合时,一次抓取几个客户的联系人集合. -->