У меня есть простой запрос подкачки по Spring MongoRepository, но MongoRepository, по-видимому, начинает посылать неверный результат после некоторой произвольной высокой страницы #. Я публикую здесь, чтобы узнать, не хватает ли я чего-то, или это может быть ошибкой с Spring MongoRepository.MongoRepository запрос подкачки, возвращающий неверные данные
В моем тесте у меня есть 14 элементов в моей тестовой Монго дБ и ниже запросов поискового вызова работает отлично (данные Извлекает, если его там): pageSize: 10, page#: 0 to 1073741823
Но ниже запроса страницы возвращает мне 10 объектов из моего MongoDB, который я не ожидал: pageSize: 10, page#: 1073741824
Точка перекоса - 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>
Repository:
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);
}
В вашем примере у вас есть только 14 записей, но вы требуете запроса для 'pageSize: 10, page #: 0 to 1073741823'. Что такое «1073741823» - можете быть более конкретным? –
@ R4J: поэтому в примере страницы # 0 и 1 возвращают соответственно 10 и 4 объекта. И страницы с 2 по 1073741823 не возвращают содержимое, то есть 'page.hasContent() = false', как и ожидалось. Но удивительно, что для страницы # 1073741824 Integer.MaxValue он возвращает 10 объектов, которых это не должно. – MSD
Ничего себе .. это очень интересно. Я просто попробовал то же самое с моим приложением spring-data-mongodb, и это случилось так же для страницы # 1073741824 или выше. Я думаю, весенние данные сбрасывают страницу # на 0 для любого значения больше 1073741824. Я определенно собираюсь копать больше, и я опубликую то, что я нахожу. – moonlighter