JPA - 架构

  • 简述

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

    下图显示了 JPA 的类级架构。它展示了 JPA 的核心类和接口。
    JPA 类级架构
    下表描述了上述架构中显示的每个单元。
    单位 描述
    EntityManagerFactory 这是 EntityManager 的工厂类。它创建和管理多个 EntityManager 实例。
    EntityManager 它是一个接口,它管理对象的持久化操作。它的工作原理类似于 Query 实例的工厂。
    Entity 实体是持久化对象,作为记录存储在数据库中。
    EntityTransaction 它与 EntityManager 是一对一的关系。对于每个 EntityManager,操作由 EntityTransaction 类维护。
    Persistence 此类包含获取 EntityManagerFactory 实例的静态方法。
    Query 该接口由每个 JPA 供应商实现,以获取符合条件的关系对象。
    上述类和接口用于将实体作为记录存储到数据库中。它们通过减少编写将数据存储到数据库的代码的工作来帮助程序员,以便他们可以专注于更重要的活动,例如编写用于将类与数据库表映射的代码。
  • JPA 类关系

    在上述架构中,类和接口之间的关系属于 javax.persistence 包。下图显示了它们之间的关系。
    JPA 类关系
    • EntityManagerFactory 和 EntityManager 的关系是 one-to-many. 它是 EntityManager 实例的工厂类。
    • EntityManager 和 EntityTransaction 的关系是 one-to-one. 对于每个 EntityManager 操作,都有一个 EntityTransaction 实例。
    • EntityManager 和 Query 的关系是 one-to-many. 许多查询可以使用一个 EntityManager 实例执行。
    • EntityManager 和 Entity 的关系是 one-to-many. 一个 EntityManager 实例可以管理多个实体。