JPA介绍


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

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

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

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

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

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

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

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

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

什么是JPA?

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

何处使用JPA?

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

JPA

JPA历史

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

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

  • 作为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等。