懒加载
概念:当用到数据的时候才向数据库查询,这就是hibernate的懒加载特性。
目的:提供程序执行效率!
lazy的属性:
true 使用懒加载
false 关闭懒加载
extra 在集合数据懒加载时候提升效率
在真正使用数据的时候才向数据库发送查询的sql
如果调用集合的size()或者isEmpty()方法,只是统计,不真正查询数据!
懒加载异常:
session在关闭后,不能使用懒加载数据
关闭session后使用懒加载会抛出异常
org.hibernate.LazyInitializationException: could not initializeproxy - no Session
解决在session关闭后不能使用懒加载数据的问题
方式1:先使用一下数据
stu.getStuName()
方式2:强迫代理对象初始化
Hibernate.initialize(stu)
方式3:关闭懒加载
lazy=false
方式4:在使用数据之后关闭session