
JPA @OneToMany 关系中的 List 与 Set
1、概览 {#1概览} ----------- [Spring JPA](/spring-data-jpa/) 和 *Hibernate* 为不同据库通信提供了强大的工具。然而,随着开发者将更多的控制权(包括查询生成)委托给框架,结果可能与我们的预期相去甚远。 开发者通常会对在多对多关系中使用列表(`List`)还是集合(`Set`)产生困惑。而且,Hibernate 对其...
1、概览 {#1概览} ----------- [Spring JPA](/spring-data-jpa/) 和 *Hibernate* 为不同据库通信提供了强大的工具。然而,随着开发者将更多的控制权(包括查询生成)委托给框架,结果可能与我们的预期相去甚远。 开发者通常会对在多对多关系中使用列表(`List`)还是集合(`Set`)产生困惑。而且,Hibernate 对其...
<h2>1、简介 {#1简介}</h2> <p>继承(Inheritance)和组合(Composition)是面向对象编程(OOP)中的两个基本概念,我们也可以在 JPA 中利用它们进行数据建模。在 JPA 中,继承和组合都是对实体间关系进行建模的技术,但它们代表的是不同类型的关系。本文将带你了解这两种方法及其影响。</p> &...
<h2>1、概览 {#1概览}</h2> <p>本文将带你了解 JPA 如何自动保存复杂的实体模型(即由父实体和子实体元素组成的复杂模型)以及常见的问题。</p> <h2>2、缺失关系注解 {#2缺失关系注解}</h2> <p>我们可能会忽略的第一件事就是添加关系注解。</p> &l...
<h2>1、概览 {#1概览}</h2> <p>缓存数据意味着我们的应用无需访问速度较慢的存储层,从而提高了性能和响应速度。我们可以使用任何内存实现库(如 <a href="https://www.baeldung.com/java-caching-caffeine">Caffeine</a>)来实...
<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)是计算机中的最小执行单元,由操作系统...
<h2>1、概览 {#1概览}</h2> <p>本文将带你了解如何根据自定义属性动态注册 Bean。</p> <p>主要是学习 <code>BeanDefinitionRegistryPostProcessor</code> 接口,以及如何使用它将 Bean 添加到 Application Co...
<h2>1、概览 {#1概览}</h2> <p>Aspect-Oriented Programming(面向切面编程,简称 AOP)是一种范式,它能让我们在整个应用中隔离事务管理或日志记录等交叉问题,而不会干扰业务逻辑。</p> <p>本文将带你了解如何在 <a href="/spring/"...
<h2>⚠️ 注意 {#-注意}</h2> <p>此版本升级到 Hibernate 6.4.4.Final。虽然它包含了许多有价值的错误修复,但在原生镜像(Native Image)中无法正常工作。如果你正在使用 <em>GraalVM</em> ,则应在 <code>pom.xml</code>...
<h2>1、概览 {#1概览}</h2> <p>本文将带你全面了解如何使用 <a href="/spring-data-jpa/">Spring Data JPA</a> 在 PostgreSQL <em>JSONB</em> 列中存储、检索 <em>JSON&l...