gzyueqian
13352868059

Java培训:Hibernate 的 6 个常见问题

更新时间: 2022-01-30 10:00:00来源: 粤嵌教育浏览量:4203

  最常见的 Java Hibernate 性能问题与过多或低效的数据库查询有关。 Hibernate 触发这些过多查询的原因有很多,但它们通常与下面常见的 Hibernate 性能问题有关。想对 Hibernate 性能问题有更深入的了解,可以参加java培训,在专业老师的指导下,你可以很快掌握java的更多特性。


  1. SQL 语句记录


  每次你的数据库被访问时,Hibernate 都会默认记录该操作。但是,在一个使用良好的应用程序中,访问给定数据库的大量时间(通常是不必要的)可能会导致日志引擎出现问题。在规模上,这些对多个数据库的并发请求会使你的日志引擎成为性能瓶颈。


  2. N+1 选择问题


  当使用默认的 FetchType.LAZY 时,Hibernate 容易出现过多的、透明的 N+1 查询。因为查询不保持会话,所以每次请求数据时它们都会针对数据库执行。对于请求大型数据集的查询,这可能意味着较长的响应时间,这也使得 Hibernate 不适合流数据集。


  3. 个别实体更新


  当我们编写面向对象的代码时,我们习惯于以原子方式处理单个对象,更新它们并逐个操作它们。使用 Hibernate 很容易养成这种习惯,但是,开发人员必须记住,对 Hibernate 中的 Entity 对象进行的每次更新都会导致执行*实际的数据库查询*。请务必考虑将批量更改而不是单个更改推送到 EntityManager。在java培训中,培训课程不仅注重理论,更注重项目的实战能力,能够让你快速适应企业开发的进度,成为企业所需要的JAVA人才。



  4. 热切关联


  Hibernate 急切地获取一对一的关系,通常会导致过多的查询。如果你有多个表试图与另一个表连接,Hibernate 将获取整个表,而不是获取适用的数据条目。默认情况下,这是低效的。而且,根据表的大小、应用程序的规模和必要的连接数量,这种低效的查询可能会导致性能问题。


  5. Hibernate 会产生低效的查询


  许多开发人员希望 Hibernate 能够生成高效的查询。不幸的是,许多自动生成的 SQL 查询效率低下。外卖? Hibernate 无法生成优于人工编码查询的查询。对于某些团队来说,轻松生成可能是值得的。


  但是,对于更大的团队或更大的应用程序,那些低效的查询(以及修复它们所需的开发时间)可能会对应用程序的性能和开发构成重大障碍。复杂和复杂的查询几乎总是更好地留给人类开发人员,Hibernate 始终擅长一次针对相对少量记录的简单 CRUD 操作。通过java培训,会有关于Maven的使用技巧的课程,学好这些技巧,有助于更好地进行开发项目,少出问题。


  6. Hibernate 有锋利的边缘


  对于大多数 Java 技术,我们鼓励开发人员通过亲身体验来发现细节——但对于新开发人员来说,hibernate 可能具有优势。在生产环境中运行 Hibernate 而对技术没有绝对的理解可能会产生灾难性的后果(想想删除数据库)。


  关于 Java Hibernate 的最终想法


  复杂的数据结构需要比 Hibernate 这样的灵丹妙药更直观的东西,才能成功构建高效、可扩展的查询。 Hibernate 提供的自动查询不如人工创建的查询高效——而且该技术当然不会取代数据库管理员或数据科学家。参加以实战项目为主要教学方法的Java培训,可以有效地缩短同企业具体用人需求之间的差距,快速提升自己。

免费预约试听课