Querydsl 和 JPA Criteria
1、概览 {#1概览} ----------- Querydsl 和 JPA Criteria 是在 Java 中构建类型安全查询的流行框架。它们都提供了以静态类型表达查询的方法,使编写与数据库交互的高效、可维护代码变得更容易。本文将从多个角度对它们进行比较。 2、设置 {#2设置} ----------- 首先,设置依赖。在所有示例中,都使用 [*HyperSQL*](...
51工具盒子
1、概览 {#1概览} ----------- Querydsl 和 JPA Criteria 是在 Java 中构建类型安全查询的流行框架。它们都提供了以静态类型表达查询的方法,使编写与数据库交互的高效、可维护代码变得更容易。本文将从多个角度对它们进行比较。 2、设置 {#2设置} ----------- 首先,设置依赖。在所有示例中,都使用 [*HyperSQL*](...
1、概览 {#1概览} ----------- [Spring JPA](/spring-data-jpa/) 和 *Hibernate* 为不同据库通信提供了强大的工具。然而,随着开发者将更多的控制权(包括查询生成)委托给框架,结果可能与我们的预期相去甚远。 开发者通常会对在多对多关系中使用列表(`List`)还是集合(`Set`)产生困惑。而且,Hibernate 对其...
Java 16 中引入的 Java Record 允许轻松地定义数据类(Data Class),这非常适合用于 JPA 中的投影查询。 Record 不能作为实体类 {#record-不能作为实体类} -------------------------------- Record 只能用于投影查询。像 Hibernate 等流行的 JPA 实现创建代理对象时需要无参构造函数...
<h2>1、概览 {#1概览}</h2> <p>在本教程中,我们将学习在 JPA 中,为什么实体类必须要有默认无参数构造函数?</p> <p>为了理解无参数构造函数的意义,我们将使用一个简单的 <code>Employee</code> 实体示例。我们将观察缺少默认构造函数是如何导致编译时错误的...
<h2>1、概览 {#1概览}</h2> <p>缓存数据意味着我们的应用无需访问速度较慢的存储层,从而提高了性能和响应速度。我们可以使用任何内存实现库(如 <a href="https://www.baeldung.com/java-caching-caffeine">Caffeine</a>)来实...
<h2>1、概览 {#1概览}</h2> <p>本文将带你了解如何根据自定义属性动态注册 Bean。</p> <p>主要是学习 <code>BeanDefinitionRegistryPostProcessor</code> 接口,以及如何使用它将 Bean 添加到 Application Co...
<h2>1、概览 {#1概览}</h2> <p>本文将带你了解如何在 Spring 中使用运行时参数创建一个 Prototype Scope Bean。</p> <p>在 Spring 中,有许多不同的 Bean Scope,默认的 Scope 是 Singleton(单例)。Singleton Scope 的 Bea...
<p>本文将带你了解什么是虚拟线程、虚拟线程是如何提高应用吞吐量的,以及如何为 Spring Boot 应用启用虚拟线程。</p> <h2>并发编程的演化 {#并发编程的演化}</h2> <h3>线程 {#线程}</h3> <p>总所周知,线程(Thread)是计算机中的最小执行单元,由操作系统...
1、概览 {#1概览} ----------- 数据库函数是数据库管理系统的重要组成部分,可将逻辑和执行封装在数据库中。它们有助于高效的数据处理和操作。 本文将带你了解在 Spring Boot 应用中使用 Spring Data JPA 调用自定义数据库函数的各种方法。 2、项目设置 {#2项目设置} --------------- 为了简单,本文使用 H2 数据库。...
<h2>1、概览 {#1概览}</h2> <p><a href="/spring-batch/">Spring Batch</a> 是一个强大的 Java 批处理框架,因此在数据处理活动和定时任务运行中被广泛选择。根据业务逻辑的复杂程度,作业可以依赖不同的配置值和动态参数。</p> &l...