JPA在线教程
任何企业应用程序通过存储和检索大量数据进行数据库操作。尽管所有的存储管理提供技术,应用程序开发人员通常很难有效地执行数据库操作。
一般情况下,Java开发人员使用大量的代码,或使用专有的架构与数据库进行交互,而使用JPA与数据库绑定交互负担显著降低。它形成(数据库程序)对象模型之间的桥梁(Java程序)和关系模型。
关系型和对象模型之间的不匹配
关系对象表示以表格的形式,而对象模型表示的对象格式的相互连接的图形。而存储和检索来自关系数据库的对象模型,一些不匹配的发生是由于以下原因:
-
粒度:对象模型比关系模型更精细。
-
亚型:亚型(指继承)所有类型的关系数据库不支持。
-
标识:如对象模型,关系模型并没有同时编写暴露身份。
-
关联:关系模型无法确定多重关系,同时寻找到一个对象域模型。
-
数据导航:在一个对象网络对象之间的数据导航是在这两种模式中有所不同。
JPA是什么?
Java持久性API(简称JAP)是类和方法的集合,以海量数据关系映射持久并存储到数据库,这是由Oracle公司提供方案技术。
在哪里使用JPA?
为了减少编写代码,对象关系管理的负担,程序员遵循“JPA提供者”框架,它可以方便地与数据库实例的交互。这里所需要的框架接管JPA。
JPA 历史
早期版本的EJB,定义持久层结合使用 javax.ejb.EntityBean 接口作为业务逻辑层。
-
同时引入EJB3.0的持久层分离,并指定为JPA1.0(Java持久性API)。这个API规范随着JAVA EE5对2006年5月11日使用JSR220规范发布。
-
JPA2.0的JAVA EE 6规范发布于2009年12月10日并成Java Community Process JSR317 的一部分。
-
JPA2.1使用JSR338 的 JAVA EE7的规范发布于2013年4月22日。
JPA提供者
JPA是一个开源的API,因此各企业厂商如Oracle,Redhat,Eclipse等,通过增加 JPA 持续性,在提供JPA的新产品。这些产品包括:
Hibernate, Eclipselink, Toplink, Spring Data JPA, etc.