JPA(JAVA Persistence API)是sun官方提出的Java持久化规范。JPA为Java开发人员提供了一种对象/关系映射工具来管理Java应用中的关系数据库。它的出现主要是为了简化现有的持久化开发工作和整合ORM技术,结束现在Hibernate、Toplink、OpenJPA、JDO等ORM框架各自为营的局面。
JPA 是通过 JDK5.0 注解或 XML 描述对象 – 关系表的映射关系,并将运行期实体对象持久化到数据库中去。JPA 规范小组的领导人就是 Hibernate 的发明者 Gavin King,JPA 规范的制定过程中大量参考了 Hibernate 的内容,所以如果一个对 Hibernate 很熟悉的人,使用起来 JPA 会是轻车熟路,驾轻就熟的,并且会感觉到更简单一些,这主要得益于 JDK5 中引入的注解(annotation)。
- 标准化
提供相同的访问 API,这保证了基于JPA开发的企业应用能够经过少量的修改就能够在不同的JPA框架下运行。越来越多的提供商期待在不久的将来提供 JPA 实施。
- 对容器级特性的支持
JPA 框架中支持大数据集、事务、并发等容器级事务 - 简单易用,集成方便
JPA的主要目标之一就是提供更加简单的编程模型,在JPA框架下创建实体和创建Java 类一样简单,只需要使用 javax.persistence.Entity进行注释;JPA的框架和接口也都非常简单。
- 可媲美JDBC的查询能力
JPA的查询语言是面向对象的,JPA定义了独特的JPQL,而且能够支持批量更新和修改、JOIN、GROUP BY、HAVINg 等通常只有 SQL 才能够提供的高级查询特性,甚至还能够支持子查询。
- 支持面向对象的高级特性
JPA 中能够支持面向对象的高级特性,如类之间的继承、多态和类之间的复杂关系,最大限度的使用面向对象的模型



