定义:
延迟加载(lazy load) 是(也称为懒加载)Hibernate3关联关系对象默认的加载方式,延迟加载机制是为了避免一些无谓的性能开销而提出来的,所谓延迟加载就是当在真正需要数据的时候,才真正执行数据加载操作。当需要在显示层显示的时候Hibernate才会把延迟的代理通Session去数据库中获取数据
可以简单理解为,只有在使用的时候,才会发出sql语句进行查询。
问题:
当session关闭后,会报异常:LazyInitializationException
解决:
- 在映射文件中在延迟建加载的一方设置lazy=”false”,强制立即加载
- 在web.xml中配置OpenSessionInViewFilter,把session延迟到页面上关闭
By the way:
Hibernate2实现延迟加载有2种方式:1.实体对象 2.集合
Hibernate3中又引入了一种新的加载方式:3.属性的延迟加载