Spring Data JPA入門

1、Spring Data JPA是什么?

它是Spring基于ORM框架JPA規(guī)范封裝的一套JPA應(yīng)用框架,可使開發(fā)者用極簡的代碼即可實現(xiàn)對數(shù)據(jù)的訪問和操作。它提供了包括增刪改查等在內(nèi)的常用功能,且易于擴(kuò)展。學(xué)習(xí)并使用Spring Data JPA可以極大的提高開發(fā)效率

2、Spring Data JPA有什么?

主要看看Spring Data JPA提供的編程接口。

  • Repository:最頂層的接口, 是一個空接口,目的是為了統(tǒng)一所有的Repository的類型,且能讓組件掃描的時候自動識別。
  • CrudRepository:Repository的子接口, 提供CRUD的功能。
  • PagingAndSortingRepository:CrudRepository的子接口,添加分頁排序的功能。
  • JpaRepository:PagingAndSortingRepository的子接口,增加批量操作等功能。
  • JpaSpecificationExecutor:用來做復(fù)雜查詢的解耦庫。
接口繼承關(guān)系圖:
接口繼承關(guān)系圖

3、添加、修改、刪除操作

Spring Data JPA提供的JpaRepository接口包含了以下幾個常用的方法:

  • delete 刪除或者批量刪除。
  • findAll 查找所有。
  • findOne 查找單個。
  • sava 保存單個或批量保存。
  • saveAndFlush 保存并刷新到數(shù)據(jù)庫。

4、查詢操作的基本實現(xiàn)

  • 基于方法名解析的概念
    JpaRepository支持接口規(guī)范方法名查詢。意思是如果在接口中定義的查詢方法符合它的命名規(guī)則,就可以不用寫實現(xiàn)。
    例如:findByName這個方法表示從數(shù)據(jù)庫中查詢Name這個屬性等于xxx的所有記錄,類似于SQL語句:select * from xxTable where name=xxx這種形式。
    這里有兩個重點:
    1、方法名需要在接口中定義。
    2、必須符合一定的命名規(guī)范。

  • 方法名構(gòu)造規(guī)范
    構(gòu)造法:find+全局修飾+By+實體的屬性名稱+限定詞+連接詞+(其它實體屬性)+OrderBy+排序?qū)傩?排序方向
    例如:findDistinctFirstNameIgnoreCaseAndLastNameOrderByAgeDesc(String firstName, String lastName){...}
    其中:Distinct是全局修飾(非必須),F(xiàn)irstName和LastName是實體的屬性名,And是連接詞,IgnoreCase是限定詞,Age是排序?qū)傩裕珼esc是排序方向,限定詞和連接詞統(tǒng)稱為“關(guān)鍵詞”。

  • 目前支持的關(guān)鍵詞
    常用詞如下:
    全局修飾:Distinct、Top、First。
    關(guān)鍵詞:IsNull、IsNotNull、Like、NotLike、Containing、In、NotIn、IgnoreCase、Between、Equals、LessThan、GreaterThan、After、Before...
    排序方向:Asc、Desc。
    連接詞:And、Or。
    更多關(guān)鍵詞請查看官方在線文檔:Spring Data JPA參考文檔

  • 嵌套實體方法命名規(guī)則
    構(gòu)造法:主實體中子實體的名稱+_+子實體的屬性名稱
    例如:List<Person> findByAddress_ZipCode(ZipCode zipCode)
    它表示查詢所有Address(地址)的zipCode(郵編)為指定值的所有Person(人員)列表。

【下一篇】:Spring Data JPA 實體詳解

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

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容