hibernate的懒加载(延迟加载)问题
hibernate的懒加载(延迟加载)问题
我们在开发的时候经常会遇到延迟加载的问题,在实体映射中多对一和多对多中,多的一方的属性默认是lazy=”true”(即,默认是延迟加载)。
如:
<many-to-one name="parent" class="Department" column="parentId" lazy="true" />
延迟记载表现在:如,我们要查询id为2的部门数据,但是有许多用户数据的部门外键是id为2,我们在查询的时候,由于默认lazy=”true”(懒加载),所以是不会查询部门外键为2的用户的数据的,但是我们在一次session中,不仅不要部门数据,而且还有可能需要高部门对应的用户数据,由于默认设置为lazy=”true”,所以我们在一次session中是获取不到该用户数据了。
解决方法一:设置lazy=”false”,该方法有很多缺点,效率极低,我们将所有相关联的数据都查询了,频繁的查询降低了效率,不建议采用。
方法二:使用OpenSessionInViewFilter拦截器,在web.xml中配置该拦截器
<filter><filter-name>OpenSessionInViewFilter</filter-name><filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class></filter>
<filter-mapping><filter-name>OpenSessionInViewFilter</filter-name><url-pattern>*.do</url-pattern>
</filter-mapping>
该方法的原理是,使用该拦截器,将session一致开启,不关闭,这时即使还是懒加载,但是session没有关闭,依然可以使用sessin查询相关数据。
优点:只需要加载自己想要的数据。
缺点:session一直开启,不安全。
hibernate的懒加载(延迟加载)问题相关推荐
- 解决hibernate中的懒加载(延迟加载)问题
解决hibernate中的懒加载(延迟加载)问题 我们在开发的时候经常会遇到延迟加载问题,在实体映射时,多对一和多对多中,多的一样的属性默认是lazy="true"(即,默认是延迟 ...
- Hibernate的懒加载session丢失解决方法
在web.xml加入spring提供的过滤器,延长session的生命周期 <!--Hibernate的懒加载session丢失解决方法 --><filter><filt ...
- Hibernate的懒加载问题
在hibernate中对象中的关联集合,默认是采用懒加载,hibernate是由session来进行数据库访问操作,在访问完action之后,session关闭.使用过滤器可以解决,是的hiberna ...
- 懒加载(延迟加载)之后,在使用数据过程中容易出现的bug
在UI中,使用懒加载,也就是延迟加载来加载数据的时候,总是会面临几个问题? 如:1. >为什么先创建NSArray属性? 2. >为什么重写NSArray的get方法? 3.>为什么 ...
- hibernate处理懒加载异常的方法
方法一:配置过滤器,对所有的url进行处理,这样方便,快捷 1.在web.xml文件中加入下面代码 <!-- 配置处理懒加载异常的过滤器,拦截action即可 --> <filter ...
- Hibernate懒加载解析
Hibernate懒加载解析 在Hibernate框架中,当我们要访问的数据量过大时,明显用缓存不太合适, 因为内存容量有限 ,为了减少并发量,减少系统资源的消耗,这时Hibernate用懒加载机制来 ...
- Hibernate懒加载
在Hibernate框架中,当我们要访问的数据量过大时,明显用缓存不太合适, 因为内存容量有限 ,为了减少并发量,减少系统资源的消耗,这时Hibernate用懒加载机制来弥补这种缺陷,但是这只是弥补而 ...
- Swiper + 图片懒加载
最近写网站有遇到图片懒加载的问题,在网上搜的大概有以下几种方法: 纯js,给图片加个class名(相当于标识),判断是否出现在当前滚屏的范围内 lazysizes插件(在网上搜的是这个对seo更好) ...
- mybatis 的懒加载原理
断断续续的阅读 mybatis 的源码有好几个月了,想把自己了解到的一些东西与大家分享.今天给大家分享一下 mybatis 的懒加载原理. mybatis 的懒加载过程挺复杂的,涉及到的东西有很多,包 ...
最新文章
- Science | COVID-19大流行期间,研究重点应放在高质量研究
- 爬虫采集-基于webkit核心的客户端Ghost.py [爬虫实例]
- Shell命令-关机重启及注销之logout、exit
- 为什么要重映射那个GPIO_Remap_SWJ_JTAGDisable
- 深度学习人体姿态估计:2014-2020全面调研
- Python类和对象的入门级讲解(简单粗暴)
- MySQL数据库表分区功能详解
- 虚拟机中Ubuntu IP地址漂移问题解决(为Ubuntu配置固定IP地址)
- OFBiz + Opentaps 目录管理 四. 产品(四)礼券
- baidu__git_android
- vue获取剪切板内容_Vue实现剪贴板复制功能
- qlv格式怎么打开,把qlv格式转换成mp4的方法
- Windows XP 语言栏丢失
- linux下,matplotlib遇到的相关问题以及解决方法
- [MetalKit]45-Using eGPUs with Metal 在 eGPU上使用 Metal
- 大数据与云计算技术---(一)hadoop大数据平台
- python中字典的使用_python中的字典用法大全
- LearnGL - 06.1 - Matrix - 矩阵02 - 向量空间、向量空间的维度、为何矩阵乘法要有 [M x N] * [N * P] 的 N 要相等的限制
- 2021-2027全球与中国工业碳酸钠市场现状及未来发展趋势
- oracle 日历每个月的第一天显示为中文的月份