Spring Boot JPA 与 Hibernate
JPA
JPA 是一个规范,它指定如何访问、管理和持久化 Java 对象和关系数据库之间的信息/数据。 它为 ORM(对象关系映射)提供了一种标准方法。
Hibernate
Hibernate 是 JPA 的一个实现。 它提供了一个轻量级的框架,是最流行的 ORM 工具之一。
JPA 与 Hibernate
下表总结了 JPA 和 Hibernate 之间的差异。
类别 | JPA | Hibernate |
---|---|---|
Type | JPA 是一种规范,定义了使用 java 对象管理关系数据库数据的方式。 | Hibernate 是 JPA 的一个实现。 它是一个将 java 对象持久保存到关系数据库中的 ORM 工具。 |
Package | JPA 使用 javax.persistence 包。 | Hibernate 使用 org.hibernate 包。 |
Factory | JPA 使用 EntityManagerFactory 接口让实体管理器持久化对象。 | Hibernate 使用 SessionFactory 接口创建会话对象,然后用于持久化对象。 |
CRUD Operations | JPA 使用 EntityManager 接口来创建/读取/删除操作并维护持久性上下文。 | Hibernate 使用 Session 接口来创建/读取/删除操作并维护持久化上下文。 |
Language | JPA 使用 JPQL(Java 持久性查询语言)作为面向对象的查询语言进行数据库操作。 | Hibernate 使用 HQL(Hibernate Query Language)作为面向对象的查询语言进行数据库操作。 |