频道栏目
首页 > 资讯 > 其他 > 正文

SSH框架之Hibernate的懒加载

16-12-22        来源:[db:作者]  
收藏   我要投稿

SSH框架之Hibernate的懒加载:一、面试题: get、load方法区别?1、get():1)get:及时加载,只要调用get方法立刻向数据库查询。

2)get:Session关闭后,可以加载数据!

2、load():
1)默认使用懒加载,当用到数据的时候才向数据库查询。
a)情况1:不执行sql语句

b)情况2:执行sql语句

2)Session关闭后,不能使用懒加载数据!

二、懒加载:(lazy)
1、概念:当用到数据的时候才向数据库查询,这就是hibernate的懒加载特性。

2、目的:提供程序执行效率!

3、懒加载异常:
Session关闭后,不能使用懒加载数据!
如果session关闭后,使用懒加载数据报错:

org.hibernate.LazyInitializationException: could not initialize proxy

如何解决session关闭后不能使用懒加载数据的问题?
方式1: 先使用一下数据
dept.getDeptName();
方式2:强迫代理对象初始化
Hibernate.initialize(dept);
方式3:关闭懒加载
设置lazy=false;
(常用的解决办法)方式4: 在使用数据之后,再关闭session!

4、lazy 值
1)true 使用懒加载
2)false 关闭懒加载
3)extra (在集合数据懒加载时候提升效率)
在真正使用数据的时候才向数据库发送查询的sql;
如果调用集合的size()/isEmpty()方法,只是统计,不真正查询数据!

相关TAG标签
上一篇:php数组根据指定字段对数组进行排序函数
下一篇:用一张图解释RxJava中的线程控制
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站