JPA vs. Hibernate

2024 年 8 月 29 日 | 阅读 2 分钟

什么是 JPA?

JPA (Java Persistence API) 是 Java 的一个规范,用于访问、管理和持久化 Java 对象和关系数据库之间的数据。 它被认为是对象关系映射的标准方法。

JPA 可以看作是面向对象域模型和关系数据库系统之间的桥梁。作为一个规范,JPA 本身不执行任何操作。因此,它需要实现。 因此,像 Hibernate、TopLink 和 iBatis 这样的 ORM 工具实现了 JPA 规范来进行数据持久化。


什么是 Hibernate?

Hibernate 是一个 Java 框架,用于将 Java 对象存储在关系数据库系统中。 它是一个开源、轻量级的 ORM (对象关系映射) 工具。

Hibernate 是 JPA 的一个实现。 因此,它遵循 JPA 提供的通用标准。


JPA 的需求

正如我们到目前为止所看到的,JPA 是一种规范。它为 ORM 工具提供了通用的原型和功能。通过实现相同的规范,所有 ORM 工具(如 Hibernate、TopLink、iBatis)都遵循通用标准。将来,如果我们要将我们的应用程序从一个 ORM 工具切换到另一个 ORM 工具,我们可以很容易地做到。


JPA vs. Hibernate

JPAHibernate
Java Persistence API (JPA) 定义了 Java 应用程序中关系数据的管理。Hibernate 是一个对象关系映射 (ORM) 工具,用于将 Java 对象的状态保存到数据库中。
它只是一个规范。各种 ORM 工具实现它来进行数据持久化。它是最常用的 JPA 实现之一。
它在 javax.persistence 包中定义。它在 org.hibernate 包中定义。
EntityManagerFactory 接口用于与持久化单元的实体管理器工厂进行交互。 因此,它提供了一个实体管理器。它使用 SessionFactory 接口来创建 Session 实例。
它使用 EntityManager 接口来为映射的实体类的实例创建、读取和删除操作。 此接口与持久性上下文交互。它使用 Session 接口来为映射的实体类的实例创建、读取和删除操作。 它充当 Java 应用程序和 Hibernate 之间的运行时接口。
它使用 Java Persistence Query Language (JPQL) 作为面向对象的查询语言来执行数据库操作。它使用 Hibernate Query Language (HQL) 作为面向对象的查询语言来执行数据库操作。
下一个主题Hibernate 教程