JPAでのSliceとPageの違い
7096 ワード
Page
Slice
(1)PageはSliceを継承している.
(2)Pageは,ページング中のすべての結果,現在のページへのデータを取得し,上のpreviousPageable()メソッドにより,前のページとnextPageable()で後のページのデータを取得することができる.だから上の方法はすべて現在のページに対して言ったのです;
(3)Pageはすべてのレコードを取得する数とページの総数を実現しているが,count queryによって計算されるため,データソースが大きいと劣勢を示す.しかし、Sliceはいくつかの操作をするときに、すべての記録数を一度計算する必要はありません.
package org.springframework.data.domain;
import org.springframework.core.convert.converter.Converter;
public interface Page<T> extends Slice<T> {
int getTotalPages();
long getTotalElements();
<S> Page<S> map(Converter<? super T, ? extends S> var1);
}
Slice
import java.util.List;
import org.springframework.core.convert.converter.Converter;
public interface Slice<T> extends Iterable<T> {
int getNumber();
int getSize();
int getNumberOfElements();
List<T> getContent();
boolean hasContent();
Sort getSort();
boolean isFirst();
boolean isLast();
boolean hasNext();
boolean hasPrevious();
Pageable nextPageable();
Pageable previousPageable();
<S> Slice<S> map(Converter<? super T, ? extends S> var1);
}
(1)PageはSliceを継承している.
(2)Pageは,ページング中のすべての結果,現在のページへのデータを取得し,上のpreviousPageable()メソッドにより,前のページとnextPageable()で後のページのデータを取得することができる.だから上の方法はすべて現在のページに対して言ったのです;
(3)Pageはすべてのレコードを取得する数とページの総数を実現しているが,count queryによって計算されるため,データソースが大きいと劣勢を示す.しかし、Sliceはいくつかの操作をするときに、すべての記録数を一度計算する必要はありません.