PageHelper查詢對象與返回對象不一致導致的分頁失效

問題說明:

在常規(guī)查詢中,查詢出的分頁結(jié)果可能會進行二次加工,最終的返回對象與最初查詢的對象可能不一致,new Pageinfo()時,返回的total值永遠就是當前頁的size,導致分頁失效。

控制器設(shè)置分頁參數(shù)

實現(xiàn)類更改了返回對象

因為源碼中對返回對象做了類型驗證,這里無法通過,故如此。


page類型驗證

解決方案:

PageHelper是通過攔截器實現(xiàn)的分頁,加工執(zhí)行SQL并獲取到count結(jié)果,實現(xiàn)類為com.github.pagehelper.PageInterceptor,可以通過繼承此類,重寫部分代碼解決。

重寫PageInterceptor

將原類中所有代碼復制過來,這里可以做一個ThredLocal來存儲當前count結(jié)果

count總數(shù)

還需更改注冊的分頁對象,換成剛剛自定義的類

注冊分頁

最終的返回結(jié)果從ThredLocal獲取,并清空即可。

Page

最后編輯于
?著作權(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ù)。

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