我有一張我想通過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