本文概述
- 什么是JPA?
- 什么是Hibernate?
- 需要JPA
- JPA与Hibernate
JPA可以看作是面向对象的域模型和关系数据库系统之间的桥梁。作为规范, JPA本身不会执行任何操作。因此, 它需要实施。因此, Hibernate, TopLink和iBatis等ORM工具实现了JPA规范以实现数据持久性。
什么是Hibernate?Hibernate是一个Java框架, 用于将Java对象存储在关系数据库系统中。它是一个开源的, 轻量级的ORM(对象关系映射)工具。
Hibernate是JPA的实现。因此, 它遵循JPA提供的通用标准。
需要JPA【JPA与Hibernate的区别】到目前为止我们已经看到, JPA是一个规范。它为ORM工具提供了通用的原型和功能。通过实现相同的规范, 所有ORM工具(如Hibernate, TopLink, iBatis)都遵循通用标准。将来, 如果要将我们的应用程序从一种ORM工具切换到另一种, 则可以轻松完成。
JPA与Hibernate
PSD素材 | 冬眠 |
---|---|
Java Persistence API(JPA)定义了Java应用程序中关系数据的管理。 | Hibernate是一种对象关系映射(ORM)工具, 用于将Java对象的状态保存到数据库中。 |
这只是一个规范。各种ORM工具将其实现以实现数据持久性。 | 它是最常用的JPA实现之一。 |
它在javax.persistence包中定义。 | 它在org.hibernate包中定义。 |
EntityManagerFactory接口用于与持久性单元的实体管理器工厂进行交互。因此, 它提供了一个实体管理器。 | 它使用SessionFactory接口创建Session实例。 |
它使用EntityManager接口为映射的实体类的实例创建, 读取和删除操作。该接口与持久性上下文进行交互。 | 它使用Session接口为映射的实体类的实例创建, 读取和删除操作。它充当Java应用程序和Hibernate之间的运行时接口。 |
它使用Java持久性查询语言(JPQL)作为面向对象的查询语言来执行数据库操作。 | 它使用Hibernate Query Language(HQL)作为面向对象的查询语言来执行数据库操作。 |
推荐阅读
- Hibernate惰性集合
- Hibernate查询语言(HQL)
- Hibernate事务管理示例
- 使用注解的每个子类的表
- 使用注解的实体表类
- Hibernate二级缓存
- 使用XML的Hibernate一对一示例
- 使用注解Hibernate一对一示例
- 使用注解Hibernate一对多示例