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的懒加载(延迟加载)问题相关推荐

  1. 解决hibernate中的懒加载(延迟加载)问题

    解决hibernate中的懒加载(延迟加载)问题 我们在开发的时候经常会遇到延迟加载问题,在实体映射时,多对一和多对多中,多的一样的属性默认是lazy="true"(即,默认是延迟 ...

  2. Hibernate的懒加载session丢失解决方法

    在web.xml加入spring提供的过滤器,延长session的生命周期 <!--Hibernate的懒加载session丢失解决方法 --><filter><filt ...

  3. Hibernate的懒加载问题

    在hibernate中对象中的关联集合,默认是采用懒加载,hibernate是由session来进行数据库访问操作,在访问完action之后,session关闭.使用过滤器可以解决,是的hiberna ...

  4. 懒加载(延迟加载)之后,在使用数据过程中容易出现的bug

    在UI中,使用懒加载,也就是延迟加载来加载数据的时候,总是会面临几个问题? 如:1. >为什么先创建NSArray属性? 2. >为什么重写NSArray的get方法? 3.>为什么 ...

  5. hibernate处理懒加载异常的方法

    方法一:配置过滤器,对所有的url进行处理,这样方便,快捷 1.在web.xml文件中加入下面代码 <!-- 配置处理懒加载异常的过滤器,拦截action即可 --> <filter ...

  6. Hibernate懒加载解析

    Hibernate懒加载解析 在Hibernate框架中,当我们要访问的数据量过大时,明显用缓存不太合适, 因为内存容量有限 ,为了减少并发量,减少系统资源的消耗,这时Hibernate用懒加载机制来 ...

  7. Hibernate懒加载

    在Hibernate框架中,当我们要访问的数据量过大时,明显用缓存不太合适, 因为内存容量有限 ,为了减少并发量,减少系统资源的消耗,这时Hibernate用懒加载机制来弥补这种缺陷,但是这只是弥补而 ...

  8. Swiper + 图片懒加载

    最近写网站有遇到图片懒加载的问题,在网上搜的大概有以下几种方法: 纯js,给图片加个class名(相当于标识),判断是否出现在当前滚屏的范围内 lazysizes插件(在网上搜的是这个对seo更好) ...

  9. mybatis 的懒加载原理

    断断续续的阅读 mybatis 的源码有好几个月了,想把自己了解到的一些东西与大家分享.今天给大家分享一下 mybatis 的懒加载原理. mybatis 的懒加载过程挺复杂的,涉及到的东西有很多,包 ...

最新文章

  1. Science | COVID-19大流行期间,研究重点应放在高质量研究
  2. 爬虫采集-基于webkit核心的客户端Ghost.py [爬虫实例]
  3. Shell命令-关机重启及注销之logout、exit
  4. 为什么要重映射那个GPIO_Remap_SWJ_JTAGDisable
  5. 深度学习人体姿态估计:2014-2020全面调研
  6. Python类和对象的入门级讲解(简单粗暴)
  7. MySQL数据库表分区功能详解
  8. 虚拟机中Ubuntu IP地址漂移问题解决(为Ubuntu配置固定IP地址)
  9. OFBiz + Opentaps 目录管理 四. 产品(四)礼券
  10. baidu__git_android
  11. vue获取剪切板内容_Vue实现剪贴板复制功能
  12. qlv格式怎么打开,把qlv格式转换成mp4的方法
  13. Windows XP 语言栏丢失
  14. linux下,matplotlib遇到的相关问题以及解决方法
  15. [MetalKit]45-Using eGPUs with Metal 在 eGPU上使用 Metal
  16. 大数据与云计算技术---(一)hadoop大数据平台
  17. python中字典的使用_python中的字典用法大全
  18. LearnGL - 06.1 - Matrix - 矩阵02 - 向量空间、向量空间的维度、为何矩阵乘法要有 [M x N] * [N * P] 的 N 要相等的限制
  19. 2021-2027全球与中国工业碳酸钠市场现状及未来发展趋势
  20. oracle 日历每个月的第一天显示为中文的月份

热门文章

  1. 【白话机器学习】算法理论+实战之关联规则
  2. AI基础:词嵌入基础和Word2vec
  3. LeNet试验(二)权重参数随训练的变化
  4. 内容流推荐中的个性化标题生成框架
  5. 产品经理和UX设计师,变革已可期
  6. 【免费】网易开卖CTO啦——开发者踩坑专场
  7. struts2S2-045漏洞相关信息
  8. python中时间操作总结
  9. Nancy之Forms验证
  10. linux 中/proc 详解