javascript
Spring Data JPA教程:简介
創(chuàng)建使用Java Persistence API的存儲庫是一個繁瑣的過程,需要大量時間,并且需要大量樣板代碼。 通過執(zhí)行以下步驟,我們可以消除一些樣板代碼:
這種方法的問題在于,我們?nèi)匀槐仨毦帉懹糜趧?chuàng)建數(shù)據(jù)庫查詢并調(diào)用它們的代碼。 更糟的是,每次要創(chuàng)建新的數(shù)據(jù)庫查詢時,我們都必須這樣做。 這是浪費時間 。
如果我告訴您我們可以創(chuàng)建JPA存儲庫而無需編寫任何樣板代碼,您會怎么說?
很有可能您可能不相信我,但是Spring Data JPA可以幫助我們做到這一點。 Spring Data JPA項目的網(wǎng)站指出 :
實現(xiàn)應用程序的數(shù)據(jù)訪問層已經(jīng)很長一段時間了。 為了執(zhí)行簡單查詢以及執(zhí)行分頁和審核,必須編寫太多樣板代碼。 Spring Data JPA旨在通過將工作量減少到實際需要的數(shù)量來顯著改善數(shù)據(jù)訪問層的實現(xiàn)。 作為開發(fā)人員,您將編寫包括自定義finder方法在內(nèi)的存儲庫接口,Spring會自動提供實現(xiàn)
這篇博客文章介紹了Spring Data JPA。 我們將學習Spring Data JPA的真正含義,并快速瀏覽一下Spring Data存儲庫接口。
讓我們開始吧。
什么是Spring Data JPA?
Spring Data JPA不是JPA提供程序 。 它是一個庫/框架,在我們的JPA提供程序的頂部添加了額外的抽象層。 如果我們決定使用Spring Data JPA,則我們應用程序的存儲庫層包含以下三層:
- Spring Data JPA通過擴展Sp??ring Data存儲庫接口為創(chuàng)建JPA存儲庫提供支持。
- Spring Data Commons提供了特定于數(shù)據(jù)存儲的Spring Data項目共享的基礎結構。
- JPA Provider實現(xiàn)Java Persistence API。
下圖說明了存儲庫層的結構:
補充閱讀:
- Spring Data JPA與JPA:有什么區(qū)別?
乍一看,Spring Data JPA似乎使我們的應用程序變得更加復雜。 它的確在我們的存儲庫層中增加了一層,但是與此同時,它使我們無需編寫任何樣板代碼。
聽起來這是一個不錯的權衡。 對?
Spring數(shù)據(jù)存儲庫簡介
Spring Data JPA的功能在于由Spring Data Commons項目提供并由特定于數(shù)據(jù)存儲的子項目擴展的存儲庫抽象。
我們可以使用Spring Data JPA而不用注意存儲庫抽象的實際實現(xiàn),但是我們必須熟悉Spring Data存儲庫接口。 這些接口描述如下:
首先 ,Spring Data Commons項目提供以下接口:
- Repository <T,ID擴展為Serializable>接口是一個標記接口,具有兩個用途:
- 它捕獲托管實體的類型和實體ID的類型。
- 它有助于Spring容器在類路徑掃描期間發(fā)現(xiàn)“具體的”存儲庫接口。
- CrudRepository <T,ID擴展為Serializable>接口為受管實體提供CRUD操作。
- PagingAndSortingRepository <T,ID擴展為Serializable>接口聲明用于對從數(shù)據(jù)庫中檢索到的實體進行排序和分頁的方法。
- QueryDslPredicateExecutor <T>接口不是“存儲庫接口”。 它聲明使用QueryDsl 謂詞對象從數(shù)據(jù)庫檢索實體的方法。
其次 ,Spring Data JPA項目提供以下接口:
- JpaRepository <T,ID擴展為Serializable>接口是JPA特定的存儲庫接口,它將公共存儲庫接口聲明的方法組合在單個接口后面。
- JpaSpecificationExecutor <T>接口不是“存儲庫接口”。 它聲明使用通過使用JPA標準API的Specification <T>對象從數(shù)據(jù)庫檢索實體的方法。
存儲庫層次結構如下所示:
很好,但是我們?nèi)绾问褂盟鼈兡?#xff1f;
這是一個公平的問題。 本教程的下一部分將回答該問題,但實際上我們必須遵循以下步驟:
讓我們繼續(xù)并總結從這篇博客文章中學到的知識。
摘要
這篇博客文章教會了我們兩件事:
- Spring Data JPA不是JPA提供者。 它只是“隱藏”了其存儲庫抽象之后的Java Persistence API(和JPA提供程序)。
- Spring Data提供了多個用于不同目的的存儲庫接口。
本教程的下一部分描述了如何獲取所需的依賴關系。
如果您想了解更多有關Spring Data JPA的信息,請閱讀我的Spring Data JPA教程 。
翻譯自: https://www.javacodegeeks.com/2014/12/spring-data-jpa-tutorial-introduction.html
總結
以上是生活随笔為你收集整理的Spring Data JPA教程:简介的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 李苦禅擅长画什么画 李苦禅的绘画风格
- 下一篇: 构建和测试JSF.next