Hibernate OGM Mongodb Aggregate Query не работает с JPA setFirstResult и setMaxResult при следующем выполнении

Я использую Hibernate OGM (5.2.0.Alpha1) с MongoDB (3.4)

Пока я выполняю

Строковый запрос ="db.student.find({'collegeName' :'VNSGU'})"

для разбиения на страницы с JPA setFirstResult() и setMaxResult(), он работает нормально, но при выполнении совокупного запроса

String query = "db.student.aggregate([{'$match' : {'collegeName' :'VNSGU'}}])";

Список listOfStudent = entityManager.createNativeQuery(запрос, Student.class).setFirstResult(startPosition).setMaxResults(noOfRecords).getResultList();

Исполнение :

  • В таблице базы данных у меня всего 10 записей, где название колледжа - «ВНСГУ»,

  • Когда startPosition = 0 и noOfRecords = 5, он выдаст мой правильный вывод при первом выполнении и вернет 5 записей,

  • И когда вы попытаетесь выполнить запрос во второй раз, где startPosition = 5 и noOfRecords = 5, он вернет пустой список, потому что при втором выполнении у него будет всего 5 записей, что является результатом первого выполнения (я проверил это, выполнив запрос без setFirstResult() и setMaxResult() и возврат всего 5 записей). Как я понял, вывод более раннего выполнения станет вводом следующего выполнения, и он вернет результат из более раннего результата.

Но на самом деле, что происходит и какое решение для этого..??


person Bharti Ladumor    schedule 26.02.2018    source источник


Ответы (2)


Так что действительно это баг.

Мы открыли следующую проблему, чтобы отследить ошибку, о которой вы сообщили: https://hibernate.atlassian.net/browse/OGM-1411 .

Исправление находится на рассмотрении, оно станет частью предстоящего выпуска 5.3.1.Final.

person Guillaume Smet    schedule 27.02.2018
comment
спасибо, Гийом Смет.... я создал PR github.com/bharti72ladumor/Hibernate-ogm-mongodb-testing/blob/. теперь вы можете открыть его. - person Bharti Ladumor; 27.02.2018