自动分区/批处理大型Spring Data JPA in-clauses

时间:2018-06-13 17:24:36

标签: java spring spring-data-jpa

当输入列表变大时,常见模式会导致问题。许多扩展org.springframework.data.jpa.repositoryJpaRepository的Spring Data接口声明了使用in-clause的查询。一个简化的例子:

@Query("SELECT c.someImportantData FROM SomeComponent c WHERE c.someForeignKeyId IN (:someIds)")
List<Object> getImportantDataBySomeIds(@Param("someIds") Collection<UUID> someIds);

只要someIds列表很小,这就很有效。使用Postgresql small定义为32767.但是,有几个内部使用超出此数量并导致错误/异常。目前,通过对主列表进行分区然后通过调用软件传入较小的集合来修复这些问题。虽然这种方法也有效,但我想知道JPA / SpringDataJPA中是否有办法实现同样的目的?如果重要的话,我正在使用Spring Data JPA 1.11.12。

0 个答案:

没有答案