51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

spring

JPA @OneToMany 关系中的 List 与 Set

JPA @OneToMany 关系中的 List 与 Set

厉飞雨 阅读(14) 评论(0) 赞(4)

1、概览 {#1概览} ----------- [Spring JPA](/spring-data-jpa/) 和 *Hibernate* 为不同据库通信提供了强大的工具。然而,随着开发者将更多的控制权(包括查询生成)委托给框架,结果可能与我们的预期相去甚远。 开发者通常会对在多对多关系中使用列表(`List`)还是集合(`Set`)产生困惑。而且,Hibernate 对其...

Querydsl 和 JPA Criteria

Querydsl 和 JPA Criteria

厉飞雨 阅读(9) 评论(0) 赞(3)

1、概览 {#1概览} ----------- Querydsl 和 JPA Criteria 是在 Java 中构建类型安全查询的流行框架。它们都提供了以静态类型表达查询的方法,使编写与数据库交互的高效、可维护代码变得更容易。本文将从多个角度对它们进行比较。 2、设置 {#2设置} ----------- 首先,设置依赖。在所有示例中,都使用 [*HyperSQL*](...

JPA 中的 PersistenceUnit 和 PersistenceContext

JPA 中的 PersistenceUnit 和 PersistenceContext

厉飞雨 阅读(14) 评论(0) 赞(0)

1、概览 {#1概览} ----------- **Persistence Context** (持久化上下文)和 **Persistence Unit**(持久化单元)是 JPA 中的两个重要概念,用来管理应用中实体的生命周期。 本文将带你了解 JPA 中的 **EntityManager** (实体管理器) 的作用,以及 *Persistence Context* 和 ...

JPA 级联保存实体中的子实体

JPA 级联保存实体中的子实体

厉飞雨 阅读(12) 评论(0) 赞(3)

1、概览 {#1概览} ----------- 本文将带你了解 JPA 如何自动保存复杂的实体模型(即由父实体和子实体元素组成的复杂模型)以及常见的问题。 2、缺失关系注解 {#2缺失关系注解} ------------------- 我们可能会忽略的第一件事就是添加关系注解。 创建一个子实体: ```java @Entity public class Bidir...

JPA 中实体的继承与组合

JPA 中实体的继承与组合

厉飞雨 阅读(11) 评论(0) 赞(4)

1、简介 {#1简介} ----------- 继承(Inheritance)和组合(Composition)是面向对象编程(OOP)中的两个基本概念,我们也可以在 JPA 中利用它们进行数据建模。在 JPA 中,继承和组合都是对实体间关系进行建模的技术,但它们代表的是不同类型的关系。本文将带你了解这两种方法及其影响。 2、JPA 中的继承 {#2jpa-中的继承} ---...

Spring 实现两级缓存

Spring 实现两级缓存

厉飞雨 阅读(7) 评论(0) 赞(0)

1、概览 {#1概览} ----------- 缓存数据意味着我们的应用无需访问速度较慢的存储层,从而提高了性能和响应速度。我们可以使用任何内存实现库(如 [Caffeine](https://www.baeldung.com/java-caching-caffeine))来实现缓存。 虽然这样做可以提高数据检索的性能,但如果应用部署在多个副本上,那么实例之间就无法共享缓存...

根据属性(Properties)动态注册 Spring Bean

根据属性(Properties)动态注册 Spring Bean

厉飞雨 阅读(8) 评论(0) 赞(1)

1、概览 {#1概览} ----------- 本文将带你了解如何根据自定义属性动态注册 Bean。 主要是学习 `BeanDefinitionRegistryPostProcessor` 接口,以及如何使用它将 Bean 添加到 Application Context 中。 2、设置 {#2设置} ----------- 创建一个简单的 Spring Boot 应用。...

Spring Boot 启用虚拟线程

Spring Boot 启用虚拟线程

厉飞雨 阅读(11) 评论(0) 赞(3)

本文将带你了解什么是虚拟线程、虚拟线程是如何提高应用吞吐量的,以及如何为 Spring Boot 应用启用虚拟线程。 并发编程的演化 {#并发编程的演化} ------------------ ### 线程 {#线程} 总所周知,线程(Thread)是计算机中的最小执行单元,由操作系统直接进行调度,每个线程都有自己的执行路径和执行状态,可以独立地运行和并发执行多个任务。 ...

Spring 在运行动态地创建 Prototype Scope Bean

Spring 在运行动态地创建 Prototype Scope Bean

厉飞雨 阅读(13) 评论(0) 赞(4)

1、概览 {#1概览} ----------- 本文将带你了解如何在 Spring 中使用运行时参数创建一个 Prototype Scope Bean。 在 Spring 中,有许多不同的 Bean Scope,默认的 Scope 是 Singleton(单例)。Singleton Scope 的 Bean 将始终产生相同的对象。 如果每次都需要从容器中获得一个新实例,可...