成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

spring data Slice 學(xué)習(xí)

Ali_ / 2307人閱讀

摘要:需求新開發(fā)一個(gè)接口,返回結(jié)果要求使用替換原來(lái)的。和的區(qū)別首先,是繼承了的,所以的功能要比更多。然后從上面的方法中,我們就能看出,能夠獲取分頁(yè)中的所有結(jié)果。所以上面的和都是針對(duì)當(dāng)前頁(yè)所說(shuō)的。因?yàn)榇蠖鄶?shù)時(shí)候,我們并不需要知道結(jié)果集總數(shù)是多少。

需求

新開發(fā)一個(gè)接口,返回結(jié)果要求使用Slice替換原來(lái)的Page。

Slice和Page的區(qū)別

首先,Page是繼承了Slice的,所以Page的功能要比Slice更多。

public interface Page extends Slice {
    int getTotalPages();

    long getTotalElements();

     Page map(Converter var1);
}

然后從上面的方法中,我們就能看出,Page能夠獲取分頁(yè)中的所有結(jié)果。

Slice不同,再來(lái)看一下它的源碼:

public interface Slice extends Iterable {
    int getNumber();

    int getSize();

    int getNumberOfElements();

    List getContent();

    boolean hasContent();

    Sort getSort();

    boolean isFirst();

    boolean isLast();

    boolean hasNext();

    boolean hasPrevious();

    Pageable nextPageable();

    Pageable previousPageable();

     Slice map(Converter var1);
}

Slice只能獲取到當(dāng)前頁(yè)的數(shù)據(jù),然后通過(guò)上面的nextPageable()previousPageable()兩個(gè)方法,又能獲取到前一頁(yè)和后一頁(yè)的數(shù)據(jù)。所以上面的getNumber()、getSize()getNumberOfElements()getContent()都是針對(duì)當(dāng)前頁(yè)所說(shuō)的。

Why Slice

看到這里,我們就會(huì)疑惑了,既然Page的功能比Slice更加強(qiáng)大,那為什么我們還要使用Slice呢?

這個(gè)問(wèn)題的答案,在官方文檔中給出了解釋:

A Page knows about the total number of elements and pages available. It does so by the infrastructure triggering a count query to calculate the overall number. As this might be expensive (depending on the store used), you can instead return a Slice. A Slice only knows about whether a next Slice is available, which might be sufficient when walking through a larger result set.

大概的意思就是說(shuō)Page實(shí)現(xiàn)了獲取所有記錄的數(shù)量和頁(yè)面的總數(shù),但是它是通過(guò)count query來(lái)計(jì)算的,所以這個(gè)代價(jià)就是很大的。

所以,當(dāng)我們有一個(gè)很大的數(shù)據(jù)集的時(shí)候,Slice可能就能滿足我們的需求了。因?yàn)榇蠖鄶?shù)時(shí)候,我們并不需要知道結(jié)果集總數(shù)是多少。

官方文檔:https://docs.spring.io/spring...

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/72144.html

相關(guān)文章

  • spring-data-mongodb常用操作

    摘要:踩到許多坑,記錄下一些基于的東西吧首先。先創(chuàng)建個(gè)集合,保存寫信息,然后再創(chuàng)建集合,可以發(fā)現(xiàn)存儲(chǔ)的時(shí)候變成了一個(gè)引用類型。王大錘那么查詢的時(shí)候,如果要根據(jù)查詢班級(jí)怎么辦,的查詢也非常簡(jiǎn)單。詳情可以查看官方文檔用法 剛接觸mongodb不久。踩到許多坑,記錄下一些基于spring-data-mongodb的東西吧 首先。應(yīng)該了解下什么情況下使用mongodb,什么情況下用mysql: 業(yè)...

    Michael_Ding 評(píng)論0 收藏0
  • spring-data-mongodb查詢使用的一些總結(jié)

    摘要:踩到許多坑,記錄下一些基于的東西吧首先。王大錘那么查詢的時(shí)候,如果要根據(jù)查詢班級(jí)怎么辦,的查詢也非常簡(jiǎn)單。詳情可以查看官方文檔用法 剛接觸mongodb不久。踩到許多坑,記錄下一些基于spring-data-mongodb的東西吧 首先。應(yīng)該了解下什么情況下使用mongodb,什么情況下用mysql: 業(yè)務(wù)需要事物,使用mysql,因?yàn)閙ongodb不支持事物 數(shù)據(jù)量大,但是數(shù)據(jù)本身...

    jollywing 評(píng)論0 收藏0
  • spring-data-mongodb查詢使用的一些總結(jié)

    摘要:踩到許多坑,記錄下一些基于的東西吧首先。王大錘那么查詢的時(shí)候,如果要根據(jù)查詢班級(jí)怎么辦,的查詢也非常簡(jiǎn)單。詳情可以查看官方文檔用法 剛接觸mongodb不久。踩到許多坑,記錄下一些基于spring-data-mongodb的東西吧 首先。應(yīng)該了解下什么情況下使用mongodb,什么情況下用mysql: 業(yè)務(wù)需要事物,使用mysql,因?yàn)閙ongodb不支持事物 數(shù)據(jù)量大,但是數(shù)據(jù)本身...

    FuisonDesign 評(píng)論0 收藏0
  • mongoDB原生查詢與spring data mongoDB的映射

    摘要:一按照等條件組合查詢,同時(shí)添加和原生二執(zhí)行操作,更新單個(gè)文檔原生三通過(guò)命令更新文檔并且返回更新之后的文檔只能作用于單個(gè)文檔原生四聚合操作根據(jù)某一字段,并且將文檔中的某一字段合并到數(shù)組中,最后取數(shù)組中的第一個(gè)元素原生五數(shù)組查詢,在某個(gè)中包 一、按照in、eq、lte等條件組合查詢,同時(shí)添加sort和limit1、原生 db.message.find( { receiverRol...

    ziwenxie 評(píng)論0 收藏0
  • Spring Boot 最流行的 16 條實(shí)踐解讀!

    摘要:來(lái)源是最流行的用于開發(fā)微服務(wù)的框架。以下依次列出了最佳實(shí)踐,排名不分先后。這非常有助于避免可怕的地獄。推薦使用構(gòu)造函數(shù)注入這一條實(shí)踐來(lái)自的項(xiàng)目負(fù)責(zé)人。保持業(yè)務(wù)邏輯免受代碼侵入的一種方法是使用構(gòu)造函數(shù)注入。 showImg(https://mmbiz.qpic.cn/mmbiz_jpg/R3InYSAIZkHQ40ly9Oztiart2lESCyjCH0JwFRp3oErlYobhibM...

    Ethan815 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<