我有一张我想通过Spring Data Repository访问的大表。如何使用Spring Data Repositories处理大量数据?
目前,我试图延长PagingAndSortingRepository
界面,但似乎我只能定义返回列表的方法,例如:
public interface MyRepository extends
PagingAndSortingRepository<MyEntity, Integer>
{
@Query(value="SELECT * ...")
List<MyEntity> myQuery(Pageable p);
}
在另一方面,随PagingAndSortingRepository
回报findAll()
方法一个Iterable
(我想这些数据没有加载到内存中)。
是否可以定义也返回Iterable和/或不一次加载所有数据到内存的自定义查询?
有处理大型表格的方法吗?
'List'实现'Iterable'接口,所以你的自定义查询方法确实返回'Iterable'。 – zagyi 2013-03-05 19:13:43
我想当我使用findAll()时,Spring Data不会加载内存中的所有内容,我错了吗?我将编辑该问题。 – 2013-03-05 20:20:25
[底层实现](https://github.com/SpringSource/spring-data-jpa/blob/master/src/main/java/org/springframework/data/jpa/repository/support/SimpleJpaRepository.java#L247 )只是检索一个列表,所以它不是那么复杂。 – zagyi 2013-03-05 20:33:47