JPA findAll Pageable Request Total Count Group By Column
Posted
技术标签:
【中文标题】JPA findAll Pageable Request Total Count Group By Column【英文标题】: 【发布时间】:2020-03-31 04:26:06 【问题描述】:我有如下代码:
Pageable pageableRequest = PageRequest.of(page, limit, Sort.by(sortBy));
Page<User> userList= null;
userList = this.user.findAll(pageableRequest)
从这里我得到所有数据并显示总数。但是,我想按状态对总数进行分组。我怎样才能做到这一点?现在总数是 26,我有 3 个状态非活动、活动和 vip。
【问题讨论】:
I want to group the total by status
按计数,数据?你试过写查询吗?
我已经尝试过类似下面的方法,但它只返回 3 个值,但我没有从每个组中获取所有用户 @Query("SELECT u FROM User u GROUP BY status") Page如果您想让所有用户按状态分组,您可以执行以下操作。
询问所有用户,然后在 java 中分组
List<User> userList = this.user.findAll();
Map<Status, List<User>> mapResult = userList.stream()
.collect(Collectors.groupingBy(User::getStatus));
【讨论】:
我需要以 PagePage<User>
应该是什么样子。例如:有 25 个用户和 10 个页面大小? @CloudSeph
您可以使用Page<User>
并执行此操作this.user.findAll(pageableRequest).stream() .collect(Collectors.groupingBy(User::getStatus));
,但它只映射子列表而不是所有用户@CloudSeph
@Iczapski 我不能那样做。我会得到不兼容的类型。
@CloudSeph '不兼容的类型'在哪里?以上是关于JPA findAll Pageable Request Total Count Group By Column的主要内容,如果未能解决你的问题,请参考以下文章
Spring Boot - Jpa Distinct 和 Pageable
springboot+jpa分页插件(Pageable+Page)
如何记录Spring Boot JPA Pageable绑定值?