配置了lazy=true一定会懒加载吗?
参考答案:
配置了lazy="true"
并不一定意味着一定会进行懒加载,这取决于具体的实现和上下文环境。
在Hibernate中,为了使lazy="true"
生效,你还需要在配置文件中将hibernate.enable_lazy_load_no_trans
设置为true
。
此外,懒加载与数据库中获取对象的方式也有关。在Hibernate中,有两种方式可以从数据库中得到一个对象:session.get()
方法和session.load()
方法。session.load()
方法支持懒加载机制,而session.get()
方法则不支持。
因此,即使配置了lazy="true"
,如果使用了不支持懒加载的session.get()
方法,那么懒加载也不会生效。
总的来说,是否进行懒加载取决于多个因素,包括配置、实现和上下文环境。