延迟加载就是并不是在访问对象的时候就把数据加载进来,而是等到真正使用时再加载。Hibernate 使用了动态代理机制实现延迟加载,我们使用 Session 的 load()方法加载数据或者从对象关系中获取关联的对象或者对象集合的时候得到的都是代理对象(one2one 除外)。
但是就算是延迟加载数据,在真正加载数据的时候,需要使用创建延迟加载对象的那个 session 去数据库中获取数据,所以,延迟加载有一个要求,就是在延迟加载对象实例化之前,延迟加载对象绑定的 session 是不能关闭的。所以这造成了我们在 javaweb 开发中非常经典的一个模式,就是 opensessioninview 模式,我们会延迟 session 的关闭时间。

