Spring JPA 分页 - 获取和更新

标签 spring spring-data-jpa

我在数据库表中有 100 条具有特定状态 X 的记录。我想使用分页(例如页大小 10)获取所有记录。在处理获取的记录期间,在某些情况下,记录将更新为状态 Y但如果不满足某些条件,则不会更新状态,并且会跳过记录。我正在使用 Spring Data JPA 的可分页对象来执行此操作。

Pageable  pageable =  PageRequest.of(0, 10);

由于对列的更新,我认为每次我在第0页本身中获取下一组记录。问题是:因为有些记录可以保留而不更新,比如说当 10 条记录没有更新时,这 10 条记录继续出现在第 0 页中,我永远无法获取剩余的记录。

请告知在涉及更新时如何使用分页获取记录。

最佳答案

我会预先加载我想要处理的行的所有 id。我会将这个 id 分成 10 个桶。然后按 ID 获取行: findAllById(Iterable<ID> ids) 。这样,无论行是否更新,您都将处理所有行。

关于Spring JPA 分页 - 获取和更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59823784/

相关文章:

java - 有没有办法在 JPA 查询中从数据库中选择特定列

java - 默认的@Transactional在底层是如何工作的?

java - 从数据库模式生成 Java 类,无需持久化单元

java - 出现类似 "java.lang.UnsupportedOperationException: Section 4.4 of the Servlet 3.0 specification does not permit this method to be called"的错误

java - 无法加载驱动程序类 org.mariadb.jdbc.Driver

spring - 使用 Java 配置设置具有 Spring Security 的嵌入式 LDAP 服务器

java - 将 hasmap 参数传递给 insert 方法时出现 classcastException

java - AspectJ 表达式在切入点错误中给出正式的未绑定(bind)

sql - 日期类型的 NULLIF

java - 如何使用 Thymeleaf 从下拉菜单中获取所选值?