📜  JPA-简介

📅  最后修改于: 2020-11-13 05:00:20             🧑  作者: Mango


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

通常,Java开发人员使用大量代码,或使用专有框架与数据库进行交互,而使用JPA,与数据库进行交互的负担将大大减少。它在对象模型(Java程序)和关系模型(数据库程序)之间架起了一座桥梁。

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

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

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

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

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

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

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

什么是JPA?

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

在哪里使用JPA?

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

JPA

JPA历史

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

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

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

  • JPA 2.1已于2013年4月22日使用JSR 338发行,并带有JAVA EE7规范。

JPA提供商

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

Hibernate,Eclipselink,Toplink,Spring Data JPA等