最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring?Data?JPA命名約定查詢實現(xiàn)方法

 更新時間:2023年12月10日 08:56:43   作者:zz  
這篇文章主要為大家介紹了Spring?Data?JPA命名約定查詢實現(xiàn)方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

很笨的實現(xiàn)

假設我只要需要最后三條數(shù)據(jù),如下是我的實現(xiàn)方法,這是一個很笨的實現(xiàn),因為這個操作是真的很冗余,這個是請求到了全部,在進行降序排序,然后在截取前面三條數(shù)據(jù)。

// 創(chuàng)建一個 Sort 對象,表示按照 ID 降序排列
        Sort sort = Sort.by(Sort.Direction.DESC, "id");
        List<Rank> allRanks = this.rankRepository.findAll(sort);
        int size = allRanks.size();
        if (size > 3) {
            allRanks = allRanks.subList(0, 3);
        }

Sort.Direction.DESC 按降序排序,desc 是descend的縮寫
Sort.Direction.ASC 按升序排序,asc 是ascend的縮寫

JpaRepository

根據(jù)上面操作,起碼寫了六行代碼,我只需要使用命名約定查詢findTop3ByOrderByIdDesc()這個方法jpa會根據(jù)這個方法名稱返回前面三條數(shù)據(jù)。

在前面已經(jīng)繼承JpaRepository接口。JpaRepository接口又繼承了四個接口PagingAndSortingRepository、CrudRepository、Repository、QueryByExampleExecutor,看到接口繼承關系圖如下:

從上圖中我們可以看到兩種線,虛線和帶箭頭的實線。

  • 實線帶箭頭: 通常表示繼承關系。在繼承關系中,子類繼承了父類的屬性和方法。實線箭頭的方向指向父類,表示子類是從父類繼承而來。
  • 虛線: 通常表示關聯(lián)或依賴關系。在關聯(lián)關系中,一個類與另一個類有某種關聯(lián),但不一定是繼承關系。虛線箭頭的方向通常表示關聯(lián)的方向,即其中一個類依賴于另一個類。

繼承四個接口的作用

  • Repository接口:提供了基本的 CRUD 操作,是倉庫接口層次結構的最頂層。
  • CrudRepository接口:CrudRepository 是繼承自 Repository 接口的子接口,提供了基本的 CRUD 方法,包括保存、查詢、更新和刪除。
  • PagingAndSortingRepository接口:PagingAndSortingRepository 是繼承自 CrudRepository 接口的子接口。
  • QueryByExampleExecutor 接口:支持基于實例的動態(tài)查詢的方法、允許你通過傳遞一個示例對象來執(zhí)行查詢,而不需要手動編寫查詢語句。

如何使用命名約定查詢

Spring Data JPA提供的方法命名規(guī)則定義方法的名稱,就可以完成查詢工作。程序執(zhí)行的時候會根據(jù)方法名稱進行解析,并自動生成sql語句進行查詢。

規(guī)則如下:

1.findBy  + 屬性名稱 (根據(jù)屬性名稱進行完成匹配的查詢=)findByName

2.findBy  + 屬性名稱 + “查詢方式(Like | isnull)” findByNameLike

3.多條件查詢
 findBy + 屬性名 + “查詢方式”   + “多條件的連接符(and|or)”  + 屬性名 + “查詢方式” 既 findByWeekReportIdAndVoteUserId

Sample

public class Vote extends BaseEntity<Long> {
    @ManyToOne
    private User voteUser;
    @ManyToMany
    private List<VoteDetail> voteDetails;
    @ManyToOne
    private WeekReport weekReport;
}

實現(xiàn)查詢:

List<Vote> votesFind = voteRepository.findAll();
 List<Vote> votes = voteRepository.findByWeekReportIdAndVoteUserId(1L, 1L);

這樣就實現(xiàn)多條件查詢了,我想如果我不知道這個命名約定查詢之前肯定會,先全部請求到數(shù)據(jù),然后一個個for if去對比數(shù)據(jù),最后才拿到我想要的數(shù)據(jù)。

總結

使用命名約定查詢,減少錯誤的發(fā)生,提高開發(fā)效率,簡化查詢語句的編寫;這樣也使得代碼更具有易讀性,而且只需要定義方法的命名即可。

參考

官網(wǎng)地址:https://springdoc.cn/spring-data-jpa/#repositories.namespace-...

以上就是Spring Data JPA命名約定查詢實現(xiàn)方法的詳細內(nèi)容,更多關于Spring Data JPA命名約定查詢的資料請關注腳本之家其它相關文章!

相關文章

  • Spring線程池ThreadPoolTaskExecutor配置詳情

    Spring線程池ThreadPoolTaskExecutor配置詳情

    本篇文章主要介紹了Spring線程池ThreadPoolTaskExecutor配置詳情,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • JAVA集合框架Map特性及實例解析

    JAVA集合框架Map特性及實例解析

    這篇文章主要介紹了JAVA集合框架Map特性及實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-04-04
  • 基于Java開發(fā)一個極簡版敏感詞檢測工具

    基于Java開發(fā)一個極簡版敏感詞檢測工具

    這篇文章主要為大家詳細介紹了如何基于Java開發(fā)一個極簡版敏感詞檢測工具,文中的示例代碼簡潔易懂,感興趣的小伙伴可以跟隨小編一起學習一下
    2025-08-08
  • Spring FTP上傳下載工具類遇到問題小結

    Spring FTP上傳下載工具類遇到問題小結

    本文通過實例代碼給大家介紹了Spring FTP上傳下載工具類遇到問題小結,非常不錯,具有參考借鑒價值,需要的朋友參考下吧
    2017-12-12
  • idea Gradle 控制臺中文亂碼的解決

    idea Gradle 控制臺中文亂碼的解決

    通過IDEA執(zhí)行gradle的任務時,在終端的輸出出現(xiàn)中文亂碼,本文主要介紹了idea Gradle 控制臺中文亂碼的解決,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • Java刪除String中空格的多種解決方法匯總

    Java刪除String中空格的多種解決方法匯總

    在Java中從字符串中刪除空格有很多不同的方法,如trim,replaceAll等,下面這篇文章主要給大家介紹了關于Java刪除String中空格的多種解決方法,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-06-06
  • SpringBoot中@Value獲取值和@ConfigurationProperties獲取值用法及比較

    SpringBoot中@Value獲取值和@ConfigurationProperties獲取值用法及比較

    在Spring Boot中,@Value注解是一個非常有用的特性,它允許我們將外部的配置注入到我們的Bean中,@ConfigurationProperties用于將配置文件中的屬性綁定到 Java Bean 上,本文介紹了@Value獲取值和@ConfigurationProperties獲取值用法及比較,需要的朋友可以參考下
    2024-08-08
  • SpringBoot項目中遇到的BUG問題及解決方法

    SpringBoot項目中遇到的BUG問題及解決方法

    這篇文章主要介紹了SpringBoot項目中遇到的BUG問題及解決方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • java對象中什么時候適合用static修飾符踩坑解決記錄

    java對象中什么時候適合用static修飾符踩坑解決記錄

    這篇文章主要為大家介紹了java對象中什么時候適合用static修飾符踩坑解決記錄,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • 全面剖析java中的注解(Annotation)

    全面剖析java中的注解(Annotation)

    一個詞就可以描述注解,那就是元數(shù)據(jù),即一種描述數(shù)據(jù)的數(shù)據(jù)。所以,可以說注解就是源代碼的元數(shù)據(jù)。文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04

最新評論

庆安县| 香港| 嵊泗县| 堆龙德庆县| 丁青县| 沛县| 长沙市| 札达县| 通州市| 鹤岗市| 凌源市| 青铜峡市| 确山县| 岳阳市| 东兰县| 聂拉木县| 那曲县| 烟台市| 罗江县| 长阳| 炎陵县| 崇左市| 威信县| 嵊泗县| 泌阳县| 伊吾县| 祥云县| 大埔区| 田东县| 安徽省| 赤水市| 旬邑县| 塔河县| 彩票| 河东区| 博湖县| 霍山县| 泰州市| 历史| 自贡市| 锡林郭勒盟|