Spring MongoRepository を介した単純なページング要求がありますが、MongoRepository は、任意の高いページ番号の後に誤った結果を送信し始めたようです。何か不足しているかどうか、またはこれが Spring MongoRepository のバグであるかどうかを知るためにここに投稿しています。
私のテストでは、テスト mongo db に 14 の要素があり、以下のページング リクエストは正常に動作します (存在する場合はデータを取得します)
pageSize: 10, page#: 0 to 1073741823
。
pageSize: 10, page#: 1073741824
限界点は、pageSize の diff の組み合わせの diff です。必要に応じて共有できます。
私が使用しているライブラリの下:
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-mongodb</artifactId>
<version>1.5.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>2.12.5</version>
</dependency>
リポジトリの定義:
public interface SomeEntityRepository extends MongoRepository<SomeEntity, Integer> {
}
このリポジトリを以下のように使用します。
public Page<SomeEntity> getSomeEntitiesByPage(int pageIndex, int paseSize, Map<String, Sort.Direction> sortQuery) {
Pageable pageableRequest = new PageRequest(pageIndex, pageSize);
return someEntityRepository.findAll(pageableRequest);
}