hibernate 中 fetch=FetchType.LAZY 懒加载失败处理方法

发布时间 - 2026-01-11 03:28:32    点击率:

对这种懒加载问题,最后的做法是利用Spring提供的一个针对Hibernate的一个支持类,其主要意思是在发起一个页面请求时打开Hibernate的Session,一直保持这个Session,使得Hibernate的Session的生命周期变长,直到这个请求结束,具体是通过一个Filter来实现的。 那么,如果现在我们想用Hibernate懒加载特性,又想用延长session的生命周期,知道将数据提到页面显示(经过action层),那么我们就得在web.xml文件中增加以下配置:

<!-- 配置Spring的用于解决懒加载问题的过滤器 --> 
 <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>*.action</url-pattern> 
 </filter-mapping> 

  注:1)OpenSessionInViewFilter为过滤器名字,*.action表示拦截所有的action,也可以 /*

    2)非 web 页面请求(如定时任务)可以按下面的方式进行处理(Hibernate.initialize(Object proxy) 方法强制加载这样就相当于动态改变为lazy=fals)

/**
 * @Author masl - 2017/9/28 14:22
 * @param setRepaymentId
 * @param initSubs :是否初始化关联表数据
 * @return
 */
@Override
public SetRepayment findSetRepaymentById(Integer setRepaymentId, boolean initSubs) {
  SetRepayment setRepayment = null;
  if (setRepaymentId != null) {
    setRepayment = setRepaymentDao.get(setRepaymentId);
    if (setRepayment != null && initSubs) {
      Hibernate.initialize(setRepayment.getSetIncomes());
    }
    return setRepayment;
  }
  return null;
}

总结

以上所述是小编给大家介绍的hibernate 中 fetch=FetchType.LAZY 懒加载失败处理方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# hibernate  # 懒加载  # 解决spring boot hibernate 懒加载的问题  # Hibernate懒加载之<class>标签上的lazy  # 浅谈解决Hibernate懒加载的4种方式  # 浅谈hibernate中懒加载禁用操作  # 加载  # 想用  # 小编  # 是在  # 在此  # 给大家  # 就得  # 按下  # 来实现  # 其主要  # 所述  # 给我留言  # 感谢大家  # 疑问请  # 有任何  # 变长  # org  # OpenSessionInViewFilter  # filter  # java 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】  Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】  简历在线制作网站免费版,如何创建个人简历?  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  如何在万网自助建站平台快速创建网站?  iOS正则表达式验证手机号、邮箱、身份证号等  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  南京网站制作费用,南京远驱官方网站?  深入理解Android中的xmlns:tools属性  专业商城网站制作公司有哪些,pi商城官网是哪个?  北京网站制作的公司有哪些,北京白云观官方网站?  网页设计与网站制作内容,怎样注册网站?  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】  网站优化排名时,需要考虑哪些问题呢?  如何快速搭建安全的FTP站点?  Laravel如何使用Service Container和依赖注入?(代码示例)  Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】  lovemo网页版地址 lovemo官网手机登录  Swift中循环语句中的转移语句 break 和 continue  iOS中将个别页面强制横屏其他页面竖屏  ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集  个人摄影网站制作流程,摄影爱好者都去什么网站?  Laravel如何集成Inertia.js与Vue/React?(安装配置)  Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives  英语简历制作免费网站推荐,如何将简历翻译成英文?  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  Android实现代码画虚线边框背景效果  深圳网站制作培训,深圳哪些招聘网站比较好?  Javascript中的事件循环是如何工作的_如何利用Javascript事件循环优化异步代码?  EditPlus 正则表达式 实战(3)  C++时间戳转换成日期时间的步骤和示例代码  Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  JavaScript数据类型有哪些_如何准确判断一个变量的类型  如何确保FTP站点访问权限与数据传输安全?  Windows10电脑怎么设置虚拟光驱_Win10右键装载ISO镜像文件  Laravel如何处理CORS跨域请求?(配置示例)  电视网站制作tvbox接口,云海电视怎样自定义添加电视源?  魔毅自助建站系统:模板定制与SEO优化一键生成指南  Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】  Laravel Seeder填充数据教程_Laravel模型工厂Factory使用  Gemini怎么用新功能实时问答_Gemini实时问答使用【步骤】  如何快速生成高效建站系统源代码?  如何用AI帮你把自己的生活经历写成一个有趣的故事?  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  如何在云主机快速搭建网站站点?  如何在服务器上配置二级域名建站?  Android中AutoCompleteTextView自动提示  中国移动官方网站首页入口 中国移动官网网页登录