![](/img/trans.png)
[英]Hibernate: Pagination with setFirstResult and setMaxResult
[英]Hibernate OGM Mongodb Aggregate Query not working with JPA setFirstResult and setMaxResult while next Execution
我在MongoDB(3.4)中使用Hibernate OGM(5.2.0.Alpha1)
當我執行時
字符串查詢=“ db.student.find({'collegeName':'VNSGU'})”
使用JPA setFirstResult()和setMaxResult()進行分頁,效果很好,但是在執行聚合查詢時
字符串查詢=“ db.student.aggregate([{'$ match':{'collegeName':'VNSGU'}}])”;
列表listOfStudent = entityManager.createNativeQuery(query,Student.class).setFirstResult(startPosition).setMaxResults(noOfRecords).getResultList();
執行:
在數據庫表中,我總共有10條記錄,其中大學名稱為“ VNSGU”,
當startPosition = 0且noOfRecords = 5時,它將在第一次執行時給出正確的輸出並返回5條記錄,
當第二次嘗試執行查詢時,startPosition = 5且noOfRecords = 5時,它將返回空列表,因為在第二次執行時,總共有5條記錄,這是第一次執行的輸出(我通過執行查詢來檢查它, setFirstResult()和setMaxResult()並返回總計5條記錄)。按照Per,我知道較早執行的輸出將成為下一次執行的輸入,並且將返回較早結果的結果。
但是實際上正在發生什么,對此有什么解決方案?
因此確實是一個錯誤。
我們打開了以下問題來跟蹤您報告的錯誤: https : //hibernate.atlassian.net/browse/OGM-1411 。
修復程序正在審核中,它將成為即將發布的5.3.1.Final版本的一部分。
作為Per,我知道較早執行的輸出將成為下一個執行的輸入,並且它將返回較早結果的結果。
我不認為這是問題。 Hibernate OGM更可能緩存了第一個查詢的結果,並且第二次也將其返回。 這似乎與另一個問題有關: https : //hibernate.atlassian.net/browse/OGM-1375
一旦進一步調查問題,我將立即更新此答案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.