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

从前面提到的行开始,使用hibernate从mysql批量获取rown的方法

东和怡
2023-03-14

我在服务类中有一个查询PageRequest page=新的PageRequest(pageNo,batchSize,new Sort(new Order(Direction.ASC,“Id”)));第Page页=此页。前置词。FindBystatus和ParentPID(Status.PENDING,-1,第页);

其中batchSize=500

在存储库中,我们有以下代码

@Query("select p from Part p where p.succeedOn IS NOT  NULL and p.Status=? and p.parentId=?")
    Page<Payment> findByStatusAndParentId( String status, Integer parentId, Pageable p);

现在流程是这样的,我想每次获取500行状态挂起的行,然后我需要处理它并需要将状态更改为成功。所以使用Pagable给我的结果是错误的,因为假设它获取前500行状态挂起的行,它处理了它并将状态更改为成功,现在它将再次进行sql查询并将获取从501到1000的行,但实际上第1行到500行也有状态挂起,因为较旧的处理行状态更改为成功,所以它们不会被sql查询覆盖。

现在为了解决这个问题,我想从最后获取的Id的最后一行进行分页,假设最后一次从100到600获取,然后我想给601作为参数,并想向前获取所有行......希望我能解释我的答案。查询限制在JPA中不起作用。谢谢

共有1个答案

邓崇凛
2023-03-14

我认为您可以继续获取第1页。假设每个批处理都在自己的事务中处理,那么当您处理第二批时,第1页应该会为您提供接下来的500个未处理的行

 类似资料:
  • 问题内容: 在日志中,我得到: “来自LAHETYS”发生了什么事?使用HQL或/和SQL处理此问题的最佳实践是什么? 另一个问题: 我得到一个例外: 所以我不能将对象投射到我的Lahetys对象上,很奇怪吗? 谢谢!佐美 问题答案: 您的HQL查询无效。LIMIT不是有效的HQL子句。要在Hibernate中做到这一点,只需

  • 我有此queryDSL查询: 但是,如果我要查找从到的行,则不起作用。或从09/04/2018到09/05/2018-仅找到09/04/2018行。 我可以将23.59.59 time添加到中,但也许在查询DSL中有一些选项可以这样做? 例如-获取从开始日期到结束日期(含)的所有行

  • 问题内容: 在产品页面上,我有一个下拉列表,列出了与产品页面关联的当前颜色选项。 在此示例中,产品页面SKU为250E,可在以下位置使用: 如果客户选择GREEN,则我想运行一个MySQL命令,该命令将根据下面显示的custom_order值将数据更改为首先显示GREEN值。 起始值应覆盖其他数据项,然后应保留custom_order值。custom_order字段的字母类似c1,c2(它们将始终

  • 问题内容: 我需要hibernate的一个特定功能,即StatelessSession,为此,我需要hibernate的SessionFactory。问题是我只有entityManagerFactory。在这种情况下如何获得StatelessSession? 问题答案: 我通过注入来解决它,定义了像这样的bean http://docs.spring.io/spring/docs/3.0.x/sp

  • 问题内容: 我有含有天自变量历元基准日期的用于某一日期。 有人知道将该变量转换为a的方法吗? 问题答案: 以下应该工作: 关于时区的注释: 使用程序运行所在系统的默认时区创建一个新实例。由于Epoch是相对于UTC(Java中的GMT)的,因此必须谨慎处理与UTC不同的任何时区。以下程序说明了该问题: 此打印 这表明仅使用eg是不够的。在这种情况下,必须始终考虑到一天中的什么时间。这可以通过显式使

  • 问题内容: 我正在尝试使用PDO从表中检索数据,只是我似乎无法向浏览器输出任何内容,只是得到了一个纯白页。 问题答案: 例。 这是您的dbc类 您的PHP页面: