1、JPA全稱Java Persistence API. JPA通過JDK 5.0註解或XML描述對象-關系表的映射關系,並將運行期的實體對象持久化到數據庫中。
JPA的主要目標之壹就是提供更加簡單的編程模型:在JPA框架下創建實體和創建Java 類壹樣簡單,沒有任何的約束和限制,只需要使用 javax.persistence.Entity進行註釋,JPA的框架和接口也都非常簡單,沒有太多特別的規則和設計模式的要求,開發者可以很容易地掌握。JPA基於非侵入式原則設計,因此可以很容易地和其它框架或者容器集成。
2、Hibernate是JPA的具體實現。但是Hibernate出現的時間早於JPA。JPA是SUN在持久化框架發展起來後提出的規範。Hibernate從3.2開始,就開始兼容JPA。Hibernate3.2獲得了Sun TCK的JPA(JavaPersistence API) 兼容認證。
Hibernate作為JPA的壹種實現,jpa的註解已經是hibernate的核心,hibernate只提供了壹些補充,而不是兩套註解。hibernate對jpa的支持夠足量,在使用hibernate註解建議使用jpa。
擴展資料
JPA查詢能力
JPA的查詢語言是面向對象而非面向數據庫的,它以面向對象的自然語法構造查詢語句,可以看成是Hibernate HQL的等價物。JPA定義了獨特的JPQL(Java Persistence Query Language),JPQL是EJB QL的壹種擴展,它是針對實體的壹種查詢語言,操作對象是實體,而不是關系數據庫的表,而且能夠支持批量更新和修改、JOIN、GROUP BY、HAVING 等通常只有 SQL 才能夠提供的高級查詢特性,甚至還能夠支持子查詢。
高級特性
JPA 中能夠支持面向對象的高級特性,如類之間的繼承、多態和類之間的復雜關系,這樣的支持能夠讓開發者最大限度的使用面向對象的模型設計企業應用,而不需要自行處理這些特性在關系數據庫的持久化。
百度百科:JPA