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

Hibernate JPA 效率低下的原因

阅读更多
Hibernate JPA 效率低下的原因
Hibernate 处理 ManyToOne OneToOne的时候,default是Eager Fetch,导致取下来是整颗对象树,<property name="hibernate.max_fetch_depth" value="3"/>本以为是限制取的层数,实际发现不是,这个只是限制用JOIN连接表的层数,如果超过这么多层,下面的会另外生成SQL语句去取,直到完整一棵对象树取完,大量的SQL语句导致效率及其低下,域模型越复杂效率越低!

解决方式是
ManyToOne OneToOne 都用lazy fetch,当需要使用lazy对象的时候,left join fetch 之。
分享到:
评论

相关推荐

    jpa-开发11

    学习 JPA 的原因在于,它为开发者提供了一种标准化的方式来处理对象和数据库之间的转换,降低了开发难度和维护成本。JPA 的出现也催生了一些知名的 ORM 框架,其中最著名的就是 Hibernate。Hibernate 作为 JPA 的...

    JPA环境支持(JAP的环境配置)

    ### JPA环境支持详解 ...通过合理的配置 JPA 依赖和相关设置,可以极大地提高数据访问层的开发效率,并且确保应用能够高效稳定地运行。以上介绍的内容涵盖了 JPA 环境配置的基础知识,希望对你有所帮助。

    Java Persistence with Hibernate(Revised Edition of Hibernate in Action)

    9. **其他持久化技术对比**:比较了Hibernate与其他ORM框架,如iBatis、TopLink等,帮助读者理解选择Hibernate的原因。 通过阅读《Java Persistence with Hibernate》,开发者不仅可以掌握Hibernate的基本用法,还...

    inventory-site:基于SpringBoot+Hibernate+Shiro的库存管理系统后端

    数据持久层使用SpringBoot自带的Hibernate来维护PO(Persistent Object持久化对象),这里使用Hibernate的原因在于其三种对象状态(持久态、游离态、分割态)便于持久化对象的增删改查等一系列操作,取代了jdbc的...

    传智播客 李勇 hibernate 的ppt

    **引入Hibernate的原因:** 1. 数据库与Java对象模型之间的差异:数据库采用关系模型,以表格形式存储数据,而Java是面向对象的语言,强调继承、关联和多态。Hibernate通过ORM技术将这两者进行桥接。 2. 解决方案:...

    Hibernate学习教程和笔记

    **存在原因**: ORM技术简化了数据库操作,提高了开发效率,使开发者能更专注于业务逻辑的实现而非底层数据访问细节。 **优缺点**: - **优点**: 提高开发效率,减少重复编码工作;提供缓存机制,提高性能;支持...

    Hibernate学习笔记

    - **存在原因**:传统的JDBC虽然功能强大,但在处理复杂的对象关系映射时显得力不从心,Hibernate的出现正是为了简化这一过程。 - **优缺点** - 优点:提高开发效率,简化复杂的数据操作,提供事务管理,支持多种...

    Spring Boot中使用Spring-data-jpa的配置方法详解

    create:每次加载 Hibernate 时都会删除上一次的生成的表,然后根据你的 model 类再重新来生成新表,哪怕两次没有任何改变也要这样执行,这就是导致数据库表数据丢失的一个重要原因。 create-drop:每次加载 ...

    基于SpringBoot+Hibernate+Shiro的库存管理系统+源代码+文档说明

    * Dao层(Data Access Object数据访问对象)使用Spring Data JPA来维护数据读写操作,Spring Data JPA的底层是基于Hibernate的,其JpaRepository、PageAndSortingRepository、CrudRepository等组件能够实现快速单表...

    Hibernate映射导致的几个异常

    在使用Hibernate进行数据库操作时...通过理解这些异常的原因和解决方法,你可以更好地避免和解决在使用Hibernate映射时遇到的问题,从而提高项目的稳定性和效率。不断学习和实践,是成为熟练掌握Hibernate映射的关键。

    hiberante基础介绍

    **使用 Hibernate 的原因** Hibernate 通过封装 JDBC,减少了数据库访问层的重复代码,提高了开发效率。同时,它使用 Java 反射机制,实现对象和数据库的透明映射。此外,Hibernate 还支持多种数据库,能处理复杂的...

    middlegen工具

    虽然Middlegen在过去很受欢迎,但随着技术的发展,一些现代的ORM框架,如JPA(Java Persistence API)和Hibernate ORM的新版本,提供了更加直观和灵活的映射方式,如注解(Annotations)。这些新方法减少了对XML文件...

    实体关联查询的程序 java eclipse

    在这个场景下,"实体关联查询"通常指的是在Java Persistence API (JPA) 或 Hibernate 框架中进行的对象关系映射(ORM)操作。JPA 和 Hibernate 允许开发者用Java对象来表示数据库中的表,并通过这些对象执行数据库...

    javaEE_Spring Boot

    JavaEE_Spring Boot框架是现代企业级应用开发的首选技术之一,它以其高效、简洁的特性,逐渐取代了传统的SSH(Struts、Spring、Hibernate)框架。SSH框架虽然在过去为Java开发者提供了很好的服务,但随着技术的发展...

    seam 反向工程_没有实体生成

    1. **配置问题**:Seam的反向工程可能需要正确的配置才能工作,例如,数据库连接设置、JPA(Java Persistence API)配置或者Hibernate工具的版本不兼容等。用户需要检查相关配置文件,如persistence.xml,确保所有...

    尚硅谷_MyBatis.pdf

    虽然Hibernate和JPA提供了全自动化的ORM映射机制,但它们在处理复杂的SQL查询时并不够灵活。此外,Hibernate内部生成的SQL语句往往难以优化,这对于需要高性能的场景来说是个问题。同时,当POJO类中有大量字段需要...

    学习JAVA的一些心得

    数据访问层面,关系型数据库知识和JDBC是基础,理解事务管理和ORM框架(如MyBatis、Hibernate、JPA)也是核心内容。为了提升应用质量,邮件发送、异步任务、缓存、日志等成熟应用的关键功能实现知识同样重要。最后,...

    nextweb-persistence:持久性提供程序的抽象接口

    JPA是Java EE的一部分,提供了一种标准的方式来管理应用程序对象和关系数据库之间的映射,而Hibernate是一个流行的、强大的ORM工具,它实现了JPA规范,并提供了一些额外的功能,比如缓存管理和性能优化。 【持久性...

    spring-boot-1.5.4.RELEASE.zip

    3. `spring-boot-starter-data-jpa`: 针对Java持久层的起步依赖,支持JPA和Hibernate,方便数据库操作。 4. `spring-boot-starter-test`: 提供了测试Spring Boot应用所需的工具和库,如JUnit、Mockito和Hamcrest。 5...

Global site tag (gtag.js) - Google Analytics