Spring Data JPA Vs Hibernate JPA Vs JPA

前言

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

名詞解釋

  • JPA(Java Persistence API,Java持久化API),它是一個關於如何處理對象關係映射(object-relational mappings)的規範;即,定義了映射Java中的Object到關係數據庫Table的標準流程。
  • Hibernate JPA,它實現了JPA規範,是JPA規範的廠商(想想JDBC規範和MySQL數據庫廠商的關係,JPA和Hibernate也是這麼一種關係)。

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

  • Spring Data JPA,它是JPA規範的一個數據訪問抽象;Spring Data旨在提供一種一致的數據訪問模型,用於訪問來自不同存儲類型的數據。

JPA 背景

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

JPA 編年史

  • 2006年5月, JPA 1.0 規範作爲 JCP JSR 220 的一部分最終被髮布。
  • 2009年12月,JPA 2.0 規範發佈(JSR 317,Java EE 6 平臺,依賴於 JPA 2.0。)
  • 2013年4月, JPA 2.1 規範發佈(JSR 338,Java EE 7 平臺,依賴於 JPA 2.1。)
  • 2017年6月, JPA 2.2 規範發佈(JSR 338)

參考資料

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章