第一种方式,不使用延迟加载。即查询对象都使用 get 而不使用 load,在配置对象关系的时候,都设置 lazy=false 来关闭延迟加载特性,但是在某些情况下,延迟加载的关闭会降低系统的性能。
第二种方式,在使用延迟加载对象之前都使用 HibernateUtil.initialize() 方法去实例化延迟加载对象,但这种方式灵活性低,代码控制繁琐;第三种方式,延迟 session 关闭时间,比如 Spring 提供的 OpenSessionInViewFilter 和 OpenSessionInViewInterceptor 就是这样的。

