Hibernate 和 Spring Data JPA 中的 N+1 问题
1、概览 {#1概览} ----------- [Spring JPA](/spring-data-jpa/) 和 Hibernate 为无缝数据库通信提供了强大的工具。不过,由于客户端将更多控制权委托给了框架,因此生成的查询可能远非最佳。 本文将带你了解使用 Spring JPA 和 Hibernate 时常见的 *N+1* 问题,以及可能导致该问题的不同情况。 2、社...
1、概览 {#1概览} ----------- [Spring JPA](/spring-data-jpa/) 和 Hibernate 为无缝数据库通信提供了强大的工具。不过,由于客户端将更多控制权委托给了框架,因此生成的查询可能远非最佳。 本文将带你了解使用 Spring JPA 和 Hibernate 时常见的 *N+1* 问题,以及可能导致该问题的不同情况。 2、社...
1、概览 {#1概览} ----------- [Spring Batch](/spring-batch/) 是一个强大的 Java 批处理框架,因此在数据处理活动和定时任务运行中被广泛选择。根据业务逻辑的复杂程度,作业可以依赖不同的配置值和动态参数。 本文将带你了解如何使用 `JobParameter` 以及如何从基本的批处理组件中访问它们。 2、Demo 项目 {#2...
本文将带你了解如何为在 Kubernetes 上运行的 [Spring Boot](/spring-boot/) 应用配置 SSL 证书的热重载。我们将使用 Spring Boot 3.1 和 3.2 版本中引入的两个功能。第一个功能允许我们利用 [SSL Bundle](/spring-boot-security-ssl-bundles/) 在服务器端和客户端配置和使用自定义...
1、简介 {#1简介} ----------- [Spring Data JPA](/spring-data-jpa/) 提供了查询推导功能(派生查询),只需遵循方法名称约定就能自动推导出查询。 本文将带你了解如何使用查询推到功能,通过一列或多列查找实体。 2、设置 {#2设置} ----------- 定义一个 `Account` 实体,其中包含与用户账户相关的属性:...
1、概览 {#1概览} ----------- 数据库函数是数据库管理系统的重要组成部分,可将逻辑和执行封装在数据库中。它们有助于高效的数据处理和操作。 本文将带你了解在 Spring Boot 应用中使用 Spring Data JPA 调用自定义数据库函数的各种方法。 2、项目设置 {#2项目设置} --------------- 为了简单,本文使用 H2 数据库。...
1、简介 {#1简介} ----------- 本文将带你了解 [Spring Data JPA](/spring-data-jpa/) 中 Query Hint (查询提示)的功能、基本原理以及如何有效地应用它们。 这些提示有助于优化数据库查询,并通过影响优化器的决策过程来改善应用性能。 2、理解 Query Hint {#2理解-query-hint} -------...
1、概览 {#1概览} ----------- 数据库视图(Database View)是关系型数据库系统中的一种类似表的结构,其中的数据源来自一个或多个连接在一起的表。 Spring Data Repository 通常用于数据库表,但也可以有效地应用于数据库视图。本文将带你了解如何在 Spring Data JPA 中使用 Repository 从数据库视图检索数据。 ...
1、概览 {#1概览} ----------- 在某些情况下,当使用 [Spring Data JPA](/spring-data-jpa/) Repository 保存实体时,可能会在日志中遇到额外的 `SELECT`。这可能会因大量额外调用而导致性能问题。 本文将带你了解如何在 Spring Data JPA 中执行 `INSERT` 时跳过 `SELECT`,以提高性...
1、简介 {#1简介} ----------- 在使用 [Spring Data JPA](/spring-data-jpa/) 进行数据持久化的 Spring Boot 应用中,测试与数据库交互的 Repository 至关重要。 本文将带你了解如何使用 Spring Boot 提供的 `@DataJpaTest` 注解和 JUnit 对 Spring Data JPA ...
1、概览 {#1概览} ----------- [Spring Security 6](/spring-security/) 有几处重大变化,包括删除了一些类和已废弃的方法,并引入了一些新方法。 从 Spring Security 5 迁移到 Spring Security 6 可以在不破坏现有代码的情况下逐步完成。此外,还可以使用 [OpenRewrite](https:...