当前位置: 首页 > 知识库问答 >
问题:

如果有多个页面,则Java Spring JPA分页不起作用

胡沈义
2023-03-14

我正在尝试将jpa分页与自定义查询结合使用。

如果符合2种情况,分页是可行的。

案例1:

    < li >如果可用数据少于10并且请求页码为0

如果不是请求不工作

案例二:

  • 如果可用数据超过10,且页码为1的请求

如果不是分页不工作。

我无法弄清楚问题。有什么帮助吗?

提前感谢。

@Repository
public interface SmsLogRepository extends JpaRepository<SmsLog, Long> {

@Query(value = "select * from sms_log s where s.phone_number = (:ph) \n#pageable\n", nativeQuery = true)
Page<SmsLog> findByPhoneNumber(@Param("ph") String phoneNumber, Pageable pageable);

@Query(value = "select * from sms_log s where s.phone_number = (:ph) AND s.message_timestamp between (:fromdate) and (:todate) \n#pageable\n", nativeQuery = true)
Page<SmsLog> findByPhoneNumberAndDate(@Param("ph") String phoneNumber, @Param("fromdate") String fromDate, @Param("todate") String todate, Pageable pageable);

@Query(value = "select * from sms_log s where s.message_timestamp between (:fromdate) and (:todate) \n#pageable\n", nativeQuery = true)
Page<SmsLog> findByDate(@Param("fromdate") String fromDate, @Param("todate") String todate, Pageable pageable);
}

请求:

PageRequest pageRequest = new PageRequest(page, 10, new Sort(new Sort.Order(Sort.Direction.DESC, "message_timestamp")));
            return logRepository.findByPhoneNumber(ph, pageRequest);

共有1个答案

陶超
2023-03-14

花了一段时间后,我找到了答案

我错过了计数查询。添加计数查询后,分页的工作方式类似于超级按钮:)

@Repository
public interface SmsLogRepository extends JpaRepository<SmsLog, Long> {

@Query(value = "select * from sms_log s where s.phone_number = (:ph) \n#pageable\n", countQuery = "select count(*) from sms_log s where s.phone_number = (:ph) \n#pageable\n", nativeQuery = true)
Page<SmsLog> findByPhoneNumber(@Param("ph") String phoneNumber, Pageable pageable);

@Query(value = "select * from sms_log s where s.phone_number = (:ph) AND s.message_timestamp between (:fromdate) and (:todate) \n#pageable\n",countQuery = "select count(*) from sms_log s where s.phone_number = (:ph) AND s.message_timestamp between (:fromdate) and (:todate) \n#pageable\n", nativeQuery = true)
Page<SmsLog> findByPhoneNumberAndDate(@Param("ph") String phoneNumber, @Param("fromdate") String fromDate, @Param("todate") String todate, Pageable pageable);

@Query(value = "select * from sms_log s where s.message_timestamp between (:fromdate) and (:todate) \n#pageable\n",countQuery = "select count(*) from sms_log s where s.message_timestamp between (:fromdate) and (:todate) \n#pageable\n", nativeQuery = true)
Page<SmsLog> findByDate(@Param("fromdate") String fromDate, @Param("todate") String todate, Pageable pageable);
}
 类似资料:
  • 在这里,为了定位复选框,XPath编写如下//td[text()=“bbbb vvvvvvvv”]/前面的同级::td/div/input[@class='hidden'] 但是这个输入没有被捕获。util"//td[text()='bbbb vvvvvvvvv']/前一个兄弟::td/div/",元素位于。有任何原因吗?。我想知道为什么这个XPath不工作?

  • 我有这个搜索。按年份/类型显示搜索结果的php: 的设置 在wordpress是显示200结果。我希望这些结果被分页,假设每页20篇文章,然后下一篇,下一篇...在页面内,没有其他结果页面的链接。 我试图添加 ,这是我从Category页面获得的一段代码,在该页面中分页工作没有问题,但在搜索结果中不显示任何与分页相关的内容。类别页面代码为: 而且该类别的导航效果很好,我如何在搜索页面的结果中获得相

  • 我有两个页面:home.jsp和stylechoosertable.jsp。jsp有一个指向stylechoosertable.jsp的简单链接。两者都在src-main-webapp-views中。启动应用程序运行良好,加载home.jsp也很好。然而,当我点击链接时,它会转到一个404未找到的页面。 下面是HomeController.java > 仅本地:8080/MySpringMVC/打

  • 不明白为什么这个突然停止工作。网站是:http://www.revival.tv/sermons/topical-messages/ 当它进入第二页时,它只使用了归档模板:(不确定为什么这样做,它在去年工作得很好。想知道Wordpress更新是否做到了这一点,我们只是注意到了它。 我使用以下的分页: 然后改写布道:

  • 我正在尝试以编程方式更改页面。这第一行代码正在工作,但我不需要它延迟,所以我尝试了第二行,但它不起作用。我错过了什么? 工作(但我不想延迟): 不工作: 我在<代码>中调用它

  • 我有一个只包含子报告的主报告,子报告显示了一些记录, 问题是我在两页都打印。所以如果子报表的页数为奇数,我需要一个分页符。