java - 没有计数的具有规范的 spring-data 切片

标签 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)
                );

不会执行 count 查询的地方。

我找到了 this question已经快 2 岁了,但在当前版本 10.1.2 中,我看不到如何执行此操作的方法/方式。

谢谢

最佳答案

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

基本上你需要:

  • 扩展 SimpleJpaRepository 以便您可以访问 protected getQuery(Specification ..) 方法返回 TypedQuery
  • 然后在键入的查询中,您可以设置偏移量和最大结果(切片大小 + 1)
  • 然后你可以执行 TypedQuery .getResultList() 并创建切片结果
  • 关于java - 没有计数的具有规范的 spring-data 切片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38369907/

    相关文章:

    Spring Data JPA 无法实例化类

    spring - Spring Data 中的 findAll Iterable AND Pageable

    java - Selenium 元素位置

    java - Checkstyle 无需编辑器即可自动修复?

    Java 结果集到 JSP

    java - 使用 ehcache 编写自定义 RefreshAheadCacheFactory

    java - Spring Data JPA 中的反向排序

    java - 读取未知数量的输入

    spring - GWT 前端的最佳 java webframe 后端?

    java - Spring Boot 在模块化 Java 中配置 DevTools