JPA - 架构
Java Persistence API 是将业务实体存储为关系实体的源。 它展示了如何将 PLAIN OLD JAVA OBJECT (POJO) 定义为实体以及如何管理具有关系的实体。
类级架构
下图展示了JPA的类级架构。 它展示了JPA的核心类和接口。
![JPA 类级别架构](/jpa/images/jpa_class_level_architecture.png)
下表描述了上述架构中显示的每个单元。
单元 | 描述 |
---|---|
EntityManagerFactory | 这是EntityManager的工厂类。 它创建并管理多个EntityManager实例。 |
EntityManager | 它是一个接口,它管理对象的持久化操作。 它的工作原理类似于查询实例的工厂。 |
Entity | 实体是持久性对象,作为记录存储在数据库中。 |
EntityTransaction | 它与EntityManager具有一对一的关系。 对于每个 EntityManager,操作由 EntityTransaction 类维护。 |
Persistence | 此类包含获取 EntityManagerFactory 实例的静态方法。 |
Query | 该接口由各个JPA厂商实现,用于获取符合条件的关系对象。 |
上述类和接口用于将实体作为记录存储到数据库中。 它们帮助程序员减少编写将数据存储到数据库的代码的工作量,以便他们可以专注于更重要的活动,例如编写将类与数据库表映射的代码。
JPA 类关系
在上面的架构中,类和接口之间的关系属于javax.persistence包。 下图展示了它们之间的关系。
![JPA 类关系](/jpa/images/jpa_class_relationships.png)
EntityManagerFactory 和 EntityManager 之间的关系是一对多。 它是 EntityManager 实例的工厂类。
EntityManager 和 EntityTransaction 之间的关系是一对一。 对于每个 EntityManager 操作,都有一个 EntityTransaction 实例。
EntityManager 和 Query 之间的关系是一对多。 使用一个 EntityManager 实例可以执行许多查询。
EntityManager 和 Entity 之间的关系是一对多。 一个EntityManager实例可以管理多个Entity。