📅  最后修改于: 2020-11-13 05:00:20             🧑  作者: Mango
任何企业应用程序都通过存储和检索大量数据来执行数据库操作。尽管有用于存储管理的所有可用技术,应用程序开发人员通常仍难以有效地执行数据库操作。
通常,Java开发人员使用大量代码,或使用专有框架与数据库进行交互,而使用JPA,与数据库进行交互的负担将大大减少。它在对象模型(Java程序)和关系模型(数据库程序)之间架起了一座桥梁。
关系对象以表格格式表示,而对象模型以对象格式的互连图表示。从关系数据库存储和检索对象模型时,由于以下原因,会发生一些不匹配:
粒度:对象模型比关系模型具有更大的粒度。
子类型:并非所有类型的关系数据库都支持子类型(意味着继承)。
身份:与对象模型一样,关系模型在编写相等性时也不会公开身份。
关联:在研究对象域模型时,关系模型无法确定多个关系。
数据导航:在两种模型中,对象网络中对象之间的数据导航是不同的。
Java Persistence API是用于将大量数据持久存储到Oracle Corporation提供的数据库中的类和方法的集合。
为了减轻编写用于关系对象管理的代码的负担,程序员遵循“ 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是一种开源API,因此,各种企业供应商(例如Oracle,Redhat,Eclipse等)通过在其中添加JPA持久性风味来提供新产品。其中一些产品包括:
Hibernate,Eclipselink,Toplink,Spring Data JPA等