Hibernate第八篇【懒加载】
来源:互联网 发布:pk10人工计划软件 编辑:程序博客网 时间:2024/05/05 09:59
前言
前面在使用Hibernate的时候就提及过了懒加载,但没有好好地说明具体的说明究竟是怎么回事…本博文主要讲解懒加载
什么是拦截器以及为什么要使用懒加载?
懒加载就是当使用数据的时候才去获取数据、执行对应的SQL语句…当还没用到数据的时候,就不加载对应的数据!
主要目的就是为了提高Hibernate的性能,提高执行效率!
- get: 及时加载,只要调用get方法立刻向数据库查询
- load:默认使用懒加载,当用到数据的时候才向数据库查询。
懒加载再次体验
User user = (User) session.load(User.class, 1); System.out.println("________"); System.out.println(user);
我们可以在对应的配置文件用通常lazy属性来设置
关闭懒加载:
<class name="IdCard" table="IdCard" lazy="false">
lazy有三个属性:
- true 使用懒加载
- false 关闭懒加载
- extra (在集合数据懒加载时候提升效率)【只有在set、list等集合标签中使用】
- 在真正使用数据的时候才向数据库发送查询的sql;
- 如果调用集合的size()/isEmpty()方法,只是统计,不真正查询数据!
懒加载异常
当Session关闭后,就不能使用懒加载了,否则会报出异常
Exception in thread "main" org.hibernate.LazyInitializationException: could not initialize proxy - no Session
报出了这个异常,我们有4种方法解决:
- 方式1: 先使用一下数据
- dept.getDeptName();
- 方式2:强迫代理对象初始化
- Hibernate.initialize(dept);
- 方式3:关闭懒加载
- 设置lazy=false;
- 方式4: 在使用数据之后,再关闭session!
1 0
- Hibernate第八篇【懒加载】
- hibernate 懒加载、延时加载
- Hibernate懒加载特性
- Hibernate懒加载策略
- Hibernate懒加载策略
- Hibernate懒加载简述
- hibernate懒加载问题
- hibernate一对一懒加载
- hibernate懒加载
- Hibernate懒加载详解
- Hibernate懒加载
- hibernate懒加载
- Hibernate懒加载解析
- hibernate的懒加载
- HIBERNATE懒加载
- hibernate懒加载问题
- hibernate 懒加载
- Hibernate懒加载解析
- JavaScript之克隆与数组
- android中activity的启动方式
- Intellij IDEA 如何创建类文档注释信息模板
- 广告语CPV
- CentOs6.5 安装gnome图形化界面并通过VNC远程访问
- Hibernate第八篇【懒加载】
- AtCoder:Median Pyramid Hard(思维)
- [codewars]5.Series: 1 + 1/4 + 1/7 + 1/10 + 1/13 + 1/16 +...
- 1263: [SCOI2006]整数划分
- 数据库中计算两个时间字段的时间差
- 205. Isomorphic Strings
- Intellij IDEA 如何忽略大小写,自动提示
- 如何设置RelativeLayout以键值对的形式一一对齐
- HDU6029 Graph Theory