虽然 Spring Data JPA 已经对数据的操作封装的很好了,约定大于配置的思想,帮我们默认了很多东西。JPA(Java 持久性 API)是存储业务实体关联的实体的来源,它显示了如何定义一个面向普通 Java 对象(POJO)作为一个实体,以及如何与管理关系实体,提供了一套标准。因此,javax.persistence 下面的有些注解我们还是必须要去了解的,便于更好的提高工作效率。

(1)javax.persistence 我们打开源码位于 hibernate-jpa-**.jar 包里面。

依赖关系,通过 Intellij Idea 的 Maven 插件直接分析一下其依赖,也可以用$ mvn dependency:tree分析,如下:

[INFO] +- org.springframework.boot:spring-boot-starter-data-jpa:jar:2.0.0.RELEASE:compile
[INFO] |  +- org.springframework.boot:spring-boot-starter:jar:2.0.0.RELEASE:compile
[INFO] |  |  \- org.springframework:spring-jdbc:jar:5.0.4.RELEASE:compile
[INFO] |  +- org.hibernate:hibernate-core:jar:5.2.14.Final:compile
[INFO] |  |  +- org.javassist:javassist:jar:3.22.0-GA:compile

(2)我们也通过前面说到的 Intellij Idea 的 Diagram 来看一下此模块的类的关键关系。

(3)下图显示了 JPA 的类的层次结构,它显示核心类和 JPA 接口。

(4)下表描述了每个在上述架构的显示单元。

单元

描述

EntityManagerFactory

这是一个 EntityManager 的工厂类,它创建并管理多个 EntityManager 实例

EntityManager

这是一个接口,它管理的持久化操作的对象,它的工作原理类似工厂的查询实例

Entity

实体是持久性对象,是存储在数据库中的记录

EntityTransaction

它与 EntityManager 是一对一的关系,对于每一个 EntityManager,操作是由 EntityTransaction 类维护

Persistence

这个类包含静态方法来获取 EntityManagerFactory 实例

Query

该接口由每个 JPA 供应商,能够获得符合标准的关系对象

上述的类和接口用于存储实体到数据库的一个记录,帮助程序员通过减少自己编写代码来将数据存储到数据库中,使他们能够专注于更重要的业务活动代码,如数据库表映射的类编写代码。

下面我们主要介绍一下,在 Entity 里面常用的注解有哪些,还有很多没有介绍到的,可以直接到包的源码里面进行查找和分析。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐