Spring Data JPA Vs Hibernate JPA Vs JPA

前言

從文章的標題,就可以清晰地了解到,本文是來辨析三個容易將新手弄糊涂的技術名詞。如果,你一眼看過去就知道這三個名詞的區(qū)別及關系,那么,這篇文章你可以不用繼續(xù)讀下去了;除非,你是想要看看我有什么解釋的不對,來糾錯的(來找茬,哈哈),也歡迎留言。

名詞解釋

  • JPA(Java Persistence API,Java持久化API),它是一個關于如何處理對象關系映射(object-relational mappings)的規(guī)范;即,定義了映射Java中的Object到關系數(shù)據(jù)庫Table的標準流程。
  • Hibernate JPA,它實現(xiàn)了JPA規(guī)范,是JPA規(guī)范的廠商(想想JDBC規(guī)范和MySQL數(shù)據(jù)庫廠商的關系,JPA和Hibernate也是這么一種關系)。

除了Hibernate這個廠商,EclipseLink也是一個比較流行的JPA廠商。

  • Spring Data JPA,它是JPA規(guī)范的一個數(shù)據(jù)訪問抽象;Spring Data旨在提供一種一致的數(shù)據(jù)訪問模型,用于訪問來自不同存儲類型的數(shù)據(jù)。

JPA 背景

在引入EJB 3.0規(guī)范之前,許多企業(yè)級Java開發(fā)人員使用由持久化框架(例如Hibernate)或數(shù)據(jù)訪問對象(DAO)提供的輕量級持久化對象,來代替實體bean(EJB的一種)。 這是因為在以前的EJB規(guī)范中,實體bean需要太多復雜的代碼和繁重的資源占用,并且由于bean和DAO對象或持久化框架之間的源代碼中的互連和依賴性,使得它們只能在Java EE應用程序服務器中使用。 因此,最初在第三方持久性框架中提供的許多功能都被合并到Java Persistence API中,并且從2006年開始,像Hibernate(版本3.2)和TopLink Essentials這樣的項目已經(jīng)實現(xiàn)Java Persistence API規(guī)范。

JPA 編年史

  • 2006年5月, JPA 1.0 規(guī)范作為 JCP JSR 220 的一部分最終被發(fā)布。
  • 2009年12月,JPA 2.0 規(guī)范發(fā)布(JSR 317,Java EE 6 平臺,依賴于 JPA 2.0。)
  • 2013年4月, JPA 2.1 規(guī)范發(fā)布(JSR 338,Java EE 7 平臺,依賴于 JPA 2.1。)
  • 2017年6月, JPA 2.2 規(guī)范發(fā)布(JSR 338)

參考資料

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容