由於標題狀態,我想只檢索例如1000行的最大值,但如果查詢結果將是1001,我想以某種方式知道。我見過的例子會檢查第二個查詢結果中的行數,但我想在查詢中使用它來獲得1000行。我正在使用休眠和標準從我的數據庫接收我的結果。數據庫是MS SQL休眠限制的結果數量,但檢查更多
回答
你想要的東西不能以通用的方式提供。
了分頁2種通常模式是:
- 使用2個查詢:第一個計數,下一個獲得結果的頁面
- 使用只有一個查詢,在那裏你去取結果比你顯示網頁
隨着第一圖案上更重要的是,你的分頁有更多的功能,因爲你可以顯示的頁面的總數,並允許用戶跳轉到,他直接想要的頁面,但你這種可能性是以增加成本爲代價的al sql查詢。
使用第二種模式,您可以只是告訴用戶是否還有一頁數據。然後用戶可以跳到下一頁(或者他已經看到的任何前一頁)。
你想有來自兩個不同的查詢的結果兩個信息:
選擇(數量)從...
選擇COL1,COL2,從...
您不能在單個執行的條件或JPQL查詢中執行此操作。
但是,您可以根據使用的DBMS以不同的方式使用本機SQL查詢(通過使用子查詢)來完成此操作。
通過這樣做,您可以使代碼變得更加複雜,使其更加依賴於特定的DBMS,並且在性能方面您可能無法獲得真正的東西。
我認爲你應該使用count而第二個查詢來獲取行。
如果後來你想利用count的結果來獲取下一個結果,你應該傾向於使用Hibernate提供的分頁機制,而不是自定義的方式。
感謝您的回答,因爲我想使用hibernate,本機查詢不適合我。反正一個好的答案 – XtremeBaumer
不客氣。實際上,您也可以使用Hibernate的原生查詢。但是在使用它之前你必須考慮兩次,就好像你決定使用ORM一樣,原生SQL應該是例外和合理的情況。 – davidxxx
- 1. 休眠限制結果查詢
- 2. 休眠限制ManyToMany
- 3. 休眠,HSQL和更新(限制)
- 4. imap_sort限制結果數量?
- 5. 休眠搜索結果太多
- 6. 休眠範圍查詢 - 除組結果
- 7. 休眠查詢結果格式
- 8. 限制左連接休眠
- 9. 休眠 - 限制(日曆,HOUR)
- 10. 在休眠條件限制
- 11. 休眠限制(和/或)
- 12. 連接休眠限制
- 13. 休眠標準結果
- 14. 檢索休眠查詢結果作爲結果集,而不是列表
- 15. 休眠如何通過整數ID列添加限制過濾結果
- 16. 休眠一對多檢索
- 17. 限制ASP.NET ListView的結果數量
- 18. 限制json結果的數量 - Rails API
- 19. 限制Get-ChildItem結果的數量
- 20. 如何限制數據庫查詢結果的數量?
- 21. 休眠標準限制機制?
- 22. 休眠 - 列表中的類的限制
- 23. 休眠和批量更新
- 24. 根據用戶所屬組限制休眠查詢數據
- 25. 休眠的限制和/或爲了
- 26. 限制休眠中的所有表
- 27. 多重更新休眠
- 28. 休眠更新查詢
- 29. 休眠session.save更新查詢
- 30. 休眠使查詢太多
感謝您的回答。我將不得不考慮哪種解決方案更適合,但是您給出了一個很好的答案 – XtremeBaumer