JPA與Hibernate的關係

1.JPAsql

  JPA全稱: Java Persistence API
  JPA經過JDK 5.0註解或XML描述對象-關係表的映射關係,並將運行期的實體對象持久化到數據庫中。
  JPA的出現?
  JPA的出現有兩個緣由:
  其一,簡化現有Java EE和Java SE應用的對象持久化的開發工做;
  其二,Sun但願整合對ORM技術,實現持久化領域的統一。

1.1.JPA提供的技術
  (1)ORM映射元數據
  JPA支持XML和JDK 5.0註解兩種元數據的形式,元數據描述對象和表之間的映射關係,框架據此將實體對象持
  久化到數據庫表中;
  (2)JPA 的API
  用來操做實體對象,執行CRUD操做,框架在後臺替咱們完成全部的事情,開發者從繁瑣的JDBC和SQL代碼中解
  脫出來。
  (3)查詢語言
  經過面向對象而非面向數據庫的查詢語言查詢數據,避免程序的SQL語句緊密耦合。 數據庫

2. Hibernatesession

  JPA是須要Provider來實現其功能的,Hibernate就是JPA Provider中很強的一個。從功能上來講,JPA如今就是Hibernate功能的一個子集。Hibernate 從3.2開始,就開始兼容JPA。Hibernate3.2得到了Sun TCK的 JPA(Java  Persistence API) 兼容認證。框架

  例如: ide

  (1)實體對象的狀態,在Hibernate有自由、持久、遊離三種,JPA裏有new,managed,detached,removed,而這些狀態都是一一對應的。hibernate

  (2)flush方法,都是對應的,對象

  (3)Query query = manager.createQuery(sql),它在Hibernate裏寫法上是session,而在JPA中變成了  manager接口

 

3.  JPA和Hibernate之間的關係,能夠簡單的理解爲JPA是標準接口,Hibernate是實現。開發

  那麼Hibernate是如何實現與JPA 的這種關係的呢?rem

  Hibernate主要是經過三個組件來實現的,及hibernate-annotation、hibernate-entitymanager和hibernate-core。

  (1)hibernate-annotation是Hibernate支持annotation方式配置的基礎,它包括了標準的JPA annotation以及  Hibernate自身特殊功能的annotation。

  (2)hibernate-core是Hibernate的核心實現,提供了Hibernate全部的核心功能。

  (3)hibernate-entitymanager實現了標準的JPA,能夠把它當作hibernate-core和JPA之間的適配器,它並不直接提供ORM的功能,而是對hibernate-core進行封裝,使得Hibernate符合JPA的規範。

  總的來講,JPA是規範,Hibernate是框架,JPA是持久化規範,而Hibernate實現了JPA。

相關文章
相關標籤/搜索