Mybatis PageHelper自動加上limit ?


現象:
偶然遇到了這個問題,同一個查詢結果一會是2個(預期),一會是1個(刷新/重啟應用就又變成2個)
定位:
查看日志,發現了問題:結果為1個時查詢SQL自動加上了Limit 1
原理及解決:

1. 設置了PageHelper.startPage(pageStart, pageSize)
2. 假設接下來沒有執行后續的查詢(拋出或者其它原因)
3. 此時PageHelper的分頁設置綁定在該線程的ThreadLocal里
4. 新的SQL查詢恰好使用了該線程,則自動使用分頁查詢(limit就莫名其妙的出現了)
5. 在高風險的地方釋放分頁設置PageHelper.clearPage();

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM