指的是通过load方法查询某个对象的时候,是否采用延迟。session.load(Customer.class,1l);
类级别的延迟加载通过标签的的lazy进行配置 (1)将lazy设置为false
(2) 将持久化类使用final修饰
(3) Hibernate. Initialize()
指的是在查询都某个对象的时候,查询其关联的对象的时候是否采用延迟加载。 Customer customer = session.get(Customer.class, 1l); Set linkmans = customer.getLinkmans(); 一般关联级别的延迟加载取策略会和抓取策略一起使用,优化语句。
通用一个对象抓取到关联的对象需要发送SQL语句,SQL语句如何发送。发送成什么样格式的,通过策略进行配置。
(1)通过< set>或者< many-to-one>上的fetch属性进行设置。 (2)fetch和这些标签上的lazy如何设置优化发送的SQL语句。
fetch抓取策略,控制SQL语句格式
select:默认值,发送普通的select语句,查询关联对象。
join:发送一条迫切左外连接查询关联对象。
subselect :发送一条子查询查询其关联对象。
lazy:延迟加载,控制查询关联对象的时候是否采用延迟
true:默认值,查询关联对象的时候,采用延迟加载。
false:查询关联对象的时候,不采用延迟加载
extra:及其懒惰。
fetch:抓取策略,控制SQL语句格式。
select:默认值,发送普通的select语句,查询关联对象。
join:发送一条迫切左外连接。
lazy:延迟加载,控制查询关联对象的时候是否采用延迟。
proxy:默认值,proxy具体的取值,取决于另一端的上的lazy的值。
false:查询关联对象,不采用延迟。
no-proxy:(不会使用)