`
javaso
  • 浏览: 51902 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

hibernate/jpa 取消延迟加载策

阅读更多

 众所周知,hibernate/jpa 为提高性能,引入延迟加载策略,如在一对多,多对多应用中,通常多的一端为延迟加载。这一定程度上可以优化系统性能,然而,在部份应用中,这种策略并吃力并不讨好,如在很多互联网应用了,由于上延迟加载,因此,数据库连接/事务 关闭的时间也将延长(通常情况,方法调用完毕,数据库连接就关闭[释放]),数据库连接/事务,通常要等到页面渲染完毕,通过Filter,将数据库连接/事务关闭[释放]。可以想像,在高并发环境下,若终端用户,网络环境不好,页面下载时间极长,那么数据库数连接不就不能尽快释放吗?那么数据库将面临连接耗尽的危险!

     如何解决?根据实际需要取消延迟加载?但是取消延迟加载,不就一下子加载很多结果集上来?在我以为,可以根据实际需要,设计相应实体,可解决这问题。

    在一对多/多对一 关系中,仅用多对一的单向关联,多对多关联,采用单向关联或者用中间类原则,改为双向的多对一关联,加载策略都为立即加载。那么延迟加载引发的问题可以一定程度上解决。

 

   当然延迟加载,也有他一定的适用环境,在企业内部系统中,一般来说,网络环境较好情况下,Hibernate/jpa 延迟加载的策略也有它的适用场境,任何工具都有它的局限性,适用之,工具将为你而服务!

分享到:
评论

相关推荐

    jtechlog-lazy:JPA延迟加载

    提供了EclipseLink和Hibernate持久性提供程序的JPA延迟加载。 具有JPA持久层和Spring MVC Web层的双层应用程序。 可以用Maven构建,下载后mvn jetty:run命令mvn jetty:run 。 它默认设置为 EclipseLink,您需要...

    Hibernate lazy延迟加载

    NULL 博文链接:https://xuwoool.iteye.com/blog/1306207

    Hibernate实战(第2版 中文高清版)

     13.1.6 通过拦截延迟加载   13.2 选择抓取策略   13.2.1 批量预抓取数据   13.2.2 通过子查询预抓取集合   13.2.3 通过联结即时抓取   13.2.4 给二级表优化抓取   13.2.5 优化指导方针   13.3 高速...

    Hibernate注解

    如果使用延迟加载,在读“多端”列表时会出异常,立即加载在得到多端时,是一个空集合(集合元素为0)。 * “一端”配置 * @OneToMany(mappedBy="“多端”的属性") * public List<“多端”类> get“多端”列表(){...

    jpa-N-1:从网上找的一个示例,不过修改了代码,等下回家了

    该项目是解决JPA延迟加载N + 1问题的典型示例: 基于Spring Boot 1.5.6 密钥基于两个注释: @NamedEntityGraph:关于实体的注释; @EntityGraph:存储库上的注释 在启动应用程序之前: 请修改您自己的数据库配置...

    ember-cli-spring-boot:ember-data 的 Spring Boot 集成

    ember-cli-spring-boot ember-data 的 Spring Boot ... 这意味着所有关系都是延迟加载的(Hibernate 喜欢这个)。 //blog export default DS . Model . extend ( { name : DS . attr ( 'string' ) , category : D

    java面试题库2021.pdf

    ②延迟加载、 性能优化 ③HQL 查询、 条件查询、 SQL 查询 ④二级缓存与查询缓存 3、 Struts ①MVC 模式与 Struts 体系 4、 mybatis 5、 MVC 框架 6、 各框架对比与项目优化 7、 JPA ①EJB 三、 Java web 开发核心...

    Spring面试题

    1. Hibernate2延迟加载实现:a)实体对象 b)集合(Collection) 2. Hibernate3 提供了属性的延迟加载功能 当Hibernate在查询数据的时候,数据并没有存在与内存中,当程序真正对数据的操作时,对象才存在与内存中,...

    Java常见面试题208道.docx

    109.jpa 和 hibernate 有什么区别? 110.什么是 spring cloud? 111.spring cloud 断路器的作用是什么? 112.spring cloud 的核心组件有哪些? 十二、Hibernate 113.为什么要使用 hibernate? 114.什么是 ORM 框架?...

    Spring中文帮助文档

    6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点运算 7.2.3. AspectJ切入点表达式 7.2.4. 便利的切入...

    Spring API

    6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点运算 7.2.3. AspectJ切入点表达式 7.2.4. 便利的切入...

Global site tag (gtag.js) - Google Analytics