簡體   English   中英

如何使用 spring jpa 分頁獲取列中的不同值以及總數

[英]How to get the distinct values in a column as well as total count using spring jpa pagination

我正在嘗試 select 列 C 的唯一值列表以及相應的計數。 我的代碼如下

    @Query(value = "SELECT DISTINCT t.C FROM table t WHERE t.param = :param order by t.C",
        countQuery = "SELECT count(DISTINCT t.C) FROM table t WHERE t.param = :param")
    Page<String> findUniqueWithCountPagination(Pageable pageable,
        @Param("param") String param);

ORDER BY items must appear in the select list if SELECT DISTINCT is specified 當我啟用 show-sql 屬性時,我注意到 Spring 正在按過濾器自動將另一列 U 添加到 order 中。 U 是表 t 中的時間戳列。

如何刪除 order by 中不必要的字段 U? 如果這是不可能的,還有其他方法可以為我的要求編寫查詢嗎?

我只需要 C 列中的唯一值並且它是計數的,因此我對 C 本身應用了排序並將其從查詢中刪除。 order by在執行期間自動應用。 代碼片段如下:

 Pageable pageable = PageRequest.of(filterOption.getPageNo(), filterOption.getPageSize(), Sort.Direction.DESC, C);


 // repository class
 @Query(value = "SELECT DISTINCT t.C FROM table t WHERE t.param = :param",
 countQuery = "SELECT count(DISTINCT t.C) FROM table t WHERE t.param = :param")
 Page<String> findUniqueWithCountPagination(Pageable pageable,
 @Param("param") String param);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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