摘要:需求新開發一個接口,返回結果要求使用替換原來的。和的區別首先,是繼承了的,所以的功能要比更多。然后從上面的方法中,我們就能看出,能夠獲取分頁中的所有結果。所以上面的和都是針對當前頁所說的。因為大多數時候,我們并不需要知道結果集總數是多少。
需求
新開發一個接口,返回結果要求使用Slice替換原來的Page。
Slice和Page的區別首先,Page是繼承了Slice的,所以Page的功能要比Slice更多。
public interface Pageextends Slice { int getTotalPages(); long getTotalElements(); Pagemap(Converter super T, ? extends S> var1); }
然后從上面的方法中,我們就能看出,Page能夠獲取分頁中的所有結果。
而Slice不同,再來看一下它的源碼:
public interface Sliceextends 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(); Slicemap(Converter super T, ? extends S> var1); }
Slice只能獲取到當前頁的數據,然后通過上面的nextPageable()和previousPageable()兩個方法,又能獲取到前一頁和后一頁的數據。所以上面的getNumber()、getSize()、getNumberOfElements()和getContent()都是針對當前頁所說的。
Why Slice看到這里,我們就會疑惑了,既然Page的功能比Slice更加強大,那為什么我們還要使用Slice呢?
這個問題的答案,在官方文檔中給出了解釋:
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.
大概的意思就是說Page實現了獲取所有記錄的數量和頁面的總數,但是它是通過count query來計算的,所以這個代價就是很大的。
所以,當我們有一個很大的數據集的時候,Slice可能就能滿足我們的需求了。因為大多數時候,我們并不需要知道結果集總數是多少。
官方文檔:https://docs.spring.io/spring...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/72144.html
摘要:踩到許多坑,記錄下一些基于的東西吧首先。先創建個集合,保存寫信息,然后再創建集合,可以發現存儲的時候變成了一個引用類型。王大錘那么查詢的時候,如果要根據查詢班級怎么辦,的查詢也非常簡單。詳情可以查看官方文檔用法 剛接觸mongodb不久。踩到許多坑,記錄下一些基于spring-data-mongodb的東西吧 首先。應該了解下什么情況下使用mongodb,什么情況下用mysql: 業...
摘要:踩到許多坑,記錄下一些基于的東西吧首先。王大錘那么查詢的時候,如果要根據查詢班級怎么辦,的查詢也非常簡單。詳情可以查看官方文檔用法 剛接觸mongodb不久。踩到許多坑,記錄下一些基于spring-data-mongodb的東西吧 首先。應該了解下什么情況下使用mongodb,什么情況下用mysql: 業務需要事物,使用mysql,因為mongodb不支持事物 數據量大,但是數據本身...
摘要:踩到許多坑,記錄下一些基于的東西吧首先。王大錘那么查詢的時候,如果要根據查詢班級怎么辦,的查詢也非常簡單。詳情可以查看官方文檔用法 剛接觸mongodb不久。踩到許多坑,記錄下一些基于spring-data-mongodb的東西吧 首先。應該了解下什么情況下使用mongodb,什么情況下用mysql: 業務需要事物,使用mysql,因為mongodb不支持事物 數據量大,但是數據本身...
摘要:一按照等條件組合查詢,同時添加和原生二執行操作,更新單個文檔原生三通過命令更新文檔并且返回更新之后的文檔只能作用于單個文檔原生四聚合操作根據某一字段,并且將文檔中的某一字段合并到數組中,最后取數組中的第一個元素原生五數組查詢,在某個中包 一、按照in、eq、lte等條件組合查詢,同時添加sort和limit1、原生 db.message.find( { receiverRol...
摘要:來源是最流行的用于開發微服務的框架。以下依次列出了最佳實踐,排名不分先后。這非常有助于避免可怕的地獄。推薦使用構造函數注入這一條實踐來自的項目負責人。保持業務邏輯免受代碼侵入的一種方法是使用構造函數注入。 showImg(https://mmbiz.qpic.cn/mmbiz_jpg/R3InYSAIZkHQ40ly9Oztiart2lESCyjCH0JwFRp3oErlYobhibM...
閱讀 1827·2021-11-11 16:55
閱讀 1452·2019-08-30 15:54
閱讀 769·2019-08-29 15:34
閱讀 2253·2019-08-29 13:11
閱讀 2908·2019-08-26 13:28
閱讀 1878·2019-08-26 10:49
閱讀 992·2019-08-26 10:40
閱讀 2553·2019-08-23 18:21