Hibernate之懒加载

来源:互联网 发布:ubuntu ss 全局翻墙 编辑:程序博客网 时间:2024/05/19 14:16

懒加载

概念:当用到数据的时候才向数据库查询,这就是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