spring-data Slice,带有Count

时间:2016-07-14 09:03:17

标签: java spring spring-data-jpa

我想知道是否有简单的方法(或者至少计划添加该功能)如何在将规范传递给Slice的情况下返回JpaSpecificationExecutor .findAll(Specification spec, Pageable pageable)而没有计数查询

所以我想做这样的事情:

Slice<MessageViewEntity> messageViewEntities =
                messageViewRepository.findAll(
                        messageViewRepository.withSearchSpecifications(language, categoryId, messageKey, longText),
                        new PageRequest(page, size)
                );

不会执行计数查询。

我发现this question差不多已有2年了,但在当前版本10.1.2中我没有看到方法/方式如何做到这一点。

由于

1 个答案:

答案 0 :(得分:0)

可以做到。看这里: https://gist.github.com/tcollins/0ebd1dfa78028ecdef0b

基本上,您需要:

  • 扩展SimpleJpaRepository,以便您可以访问返回TypedQuery的受保护的getQuery(Specification ..)methof
  • 然后在类型查询中,您可以设置偏移量和最大结果(切片的大小+ 1)
  • 然后您可以执行TypedQuery .getResultList()并创建切片结果