• 在实施@OneToMany双向关系时,有很多方法会搞砸。这里说明一下最佳实践方式:关键点: 始终从父级到子级实现级联 在父类上使用mappedBy 在父类上使用orphanRemoval以删除父类不再引用的子类 在父类上使用helper方法可以
  • 默认情况下,100个插入将导致100个SQL INSERT语句,这很糟糕,因为它导致100次数据库往返。批处理机制能够使用分组的机制INSERTs,UPDATEs,并DELETEs,作为一个结果,它显著减少数据库往返次数。实现批量插入的一种方法是使用SimpleJpaReposito
  • Spring Data JPA为Spring应用程序提供了数据访问层的实现。这是一个非常方便的组件,因此您可以花更多时间来实现业务逻辑。使用Spring Data JPA时需要遵循一些好的做法。例如,限制不必要对象的加载以优化性能。本文将为您提供一些减少数据库往返的技巧,而不是检索数 icon
  • Spring新增了一个新的数据模块:Spring Data JDBC。Spring Data JDBC背后的想法是提供对关系数据库的访问,而无需处理JPA的复杂性。JPA提供延迟加载,缓存和脏跟踪等功能。果你需要这些功能会很很棒,但会让猜测JPA的行为比非JPA更难。 icon
  • 在MySQL中,TABLE生成器是您总是希望避免的。 icon
  • 执行更多的SQL总是性能损失。重要的是努力尽可能地减少它们的数量,并且依赖于指向引用是一种易于使用的优化方式。当一个带有指向其父实体的子实体持久化并时,Proxy可能很有用。在这种情况下,从数据库中获取父实体(执行SELECT语句)是一种性能损失和无意义的操作。Hibernate可以 icon
  • 在处理转换时,以不同/特定格式存储数据库中的日期,时间和时间戳可能会导致实际问题,此方法显示如何在MySQL中以UTC时区存储日期,时间和时间戳。对于其他RDBMS(例如PostgreSQL),只需删除“ useLegacyDatetimeCode=false”并调整JDBC URL。 icon
  • 本教程不是关于Hibernate或Spring Boot如何入门,相反,我们将研究一起使用它们时可能遇到的一些常见错误以及如何解决它们。我们将使用: Spring Boot 2 Spring Webflux Spring Data JPA Sp icon
  • 当不能直接提取时,我们可以考虑JPQL / HQL查询提取。本文的应用程序展示如何通过JpaRepository,EntityManager和Session实现查询概念的证明。关键点: 对于JpaRepository, 使用@Query或Spring Data icon
  • 您知道在软件开发中使用版本控制的好处,例如Git或Sub icon
  • 将Java 8 Optional视为处理所有的空值的“银弹”可能会带来更多弊大于利。合适它们是最好的方法。本文的应用程序是在实体和查询中如何正确使用Java 8 Optional的概念证明。 关键点: 使用Spring Da icon
  • 在没有看到和检查背后运行的SQL以及相应的绑定输入参数的情况下,我们很容易引入可能长时间存在的性能损失(例如N + 1)。 如果您的项目中已经有Log4J 2,则下面介绍的解决方案非常有用。如果没有,最好依赖于TRACE或log4jdbc(谢谢谢尔 icon
  • 我们从数据库中提取数据,才能确定应用程序的执行方式。为了构建最佳的提取计划,我们需要了解每种提取类型。直接获取数据是最简单的,无需编写任何显式SQL查询语句,并且在我们知道实体主键时非常有用。 如何通过通过Spring Data EntityMan icon
  • ,在本教程中,我们将探讨spring框架的spring boot模块中的crud操作。 简介 Spring Boot是一个为spring框架提供快速应用程序开发功能的模块,包括自动配置,独立代码和生 icon
  • N + 1是一个可能导致严重性能损失的问题,为了消除它,你必须找到/识别它,但这并不总很容易,但这里列举导致N + 1的最常见场景之一。描述: N + 1是一个延迟抓取的问题(但是,急切加载也不能免除)。如果您没有机会看到它的运行情况,这个应用程序将再现N + 1行为。为了避免N + icon
  • 在本教程中,我们将构建一个简单的Spring Boot 2应用程序,可以使用JPA访问Postgres数据库。 背景: 在我们开始之前,让我们先了解一些定义。 什么是JPA?JPA代 icon
  • 默认情况下,Hibernate/JPA实体的属性是急切加载的(一次性全部加载)。你确定这是想要的吗? 如果不是,那么重要的是要知道可以通过Hibernate字节码检测来延迟加载属性(另一种方法是通过子实体)。这对于存储大量数据的列类型有用:CLOB icon
  • 如果不确保Hibernate批处理能真正有效工作,就会受到严重的性能损失。批处理被禁用时有不同的情况,即使我们已经设置并认为它在幕后已经工作。为了检查确保这点,我们可以用hibernate.generate_statistics来显示细节(包括批处理细节),但我们也可以使用datasourc icon