JPA - 架构

Java Persistence API 是将业务实体存储为关系实体的源。 它展示了如何将 PLAIN OLD JAVA OBJECT (POJO) 定义为实体以及如何管理具有关系的实体。

类级架构

下图展示了JPA的类级架构。 它展示了JPA的核心类和接口。

JPA 类级别架构

下表描述了上述架构中显示的每个单元。

单元 描述
EntityManagerFactory 这是EntityManager的工厂类。 它创建并管理多个EntityManager实例。
EntityManager 它是一个接口,它管理对象的持久化操作。 它的工作原理类似于查询实例的工厂。
Entity 实体是持久性对象,作为记录存储在数据库中。
EntityTransaction 它与EntityManager具有一对一的关系。 对于每个 EntityManager,操作由 EntityTransaction 类维护。
Persistence 此类包含获取 EntityManagerFactory 实例的静态方法。
Query 该接口由各个JPA厂商实现,用于获取符合条件的关系对象。

上述类和接口用于将实体作为记录存储到数据库中。 它们帮助程序员减少编写将数据存储到数据库的代码的工作量,以便他们可以专注于更重要的活动,例如编写将类与数据库表映射的代码。

JPA 类关系

在上面的架构中,类和接口之间的关系属于javax.persistence包。 下图展示了它们之间的关系。

JPA 类关系
  • EntityManagerFactory 和 EntityManager 之间的关系是一对多。 它是 EntityManager 实例的工厂类。

  • EntityManager 和 EntityTransaction 之间的关系是一对一。 对于每个 EntityManager 操作,都有一个 EntityTransaction 实例。

  • EntityManager 和 Query 之间的关系是一对多。 使用一个 EntityManager 实例可以执行许多查询。

  • EntityManager 和 Entity 之间的关系是一对多。 一个EntityManager实例可以管理多个Entity。