簡體   English   中英

Hibernate OGM Mongodb聚合查詢在下一次執行時無法與JPA setFirstResult和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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM