JPA - 简介

任何企业应用程序都通过存储和检索大量数据来执行数据库操作。 尽管有所有可用的存储管理技术,但应用程序开发人员通常很难有效地执行数据库操作。

一般来说,Java开发人员使用大量代码,或者使用专有框架与数据库交互,而使用JPA,与数据库交互的负担大大减轻。 它构成了对象模型(Java 程序)和关系模型(数据库程序)之间的桥梁。

关系模型和对象模型之间不匹配

关系对象以表格格式表示,而对象模型以对象格式的互连图表示。 在从关系数据库存储和检索对象模型时,由于以下原因会出现一些不匹配的情况:

  • 粒度:对象模型比关系模型具有更多粒度。

  • 子类型:并非所有类型的关系数据库都支持子类型(表示继承)。

  • 身份:与对象模型一样,关系模型在编写相等性时不会暴露身份。

  • 关联:在查看对象域模型时,关系模型无法确定多个关系。

  • 数据导航:对象网络中对象之间的数据导航在两种模型中都不同。

什么是 JPA?

Java Persistence API 是 Oracle 公司提供的用于将大量数据持久存储到数据库中的类和方法的集合。

在哪里使用 JPA?

为了减轻编写关系对象管理代码的负担,程序员遵循"JPA Provider"框架,该框架允许与数据库实例轻松交互。 这里所需的框架由JPA接管。

JPA

JPA 历史

早期版本的 EJB,使用 javax.ejb.EntityBean 接口定义持久层与业务逻辑层相结合。

  • 在引入 EJB 3.0 时,持久层被分离并指定为 JPA 1.0(Java Persistence API)。 该API的规范于2006年5月11日使用JSR 220与JAVA EE5的规范一起发布。

  • JPA 2.0 与 JAVA EE6 规范一起于 2009 年 12 月 10 日发布,作为 Java Community Process JSR 317 的一部分。

  • JPA 2.1 于 2013 年 4 月 22 日使用 JSR 338 与 JAVA EE7 规范一起发布。

JPA 提供商

JPA是一个开源API,因此各个企业供应商(例如Oracle、Redhat、Eclipse等)都通过在其中添加JPA持久化风味来提供新产品。 其中一些产品包括:

Hibernate、Eclipselink、Toplink、Spring Data JPA 等