[英]How to get distinct values of a single column in Criteria API(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.