Я хочу читать данные из базы данных с помощью Hibernate. Я хочу начать с первой строки, прочитать 200 строк и обработать их, а затем прочитать следующие 200 строк. Но Hibernate каждый раз возвращает случайную строку.Почему Hibernate возвращает случайный результат?
Этот метод читается из базы данных.
public List getPages(int start, int end) {
Criteria queryCriteria = session.createCriteria(Page.class);
queryCriteria.setFirstResult(start).setMaxResults(end);
return queryCriteria.list();
}
public void MyFunction(){
while (readFlag) {
//get page from database;
List<Page> pagesList = database.getPages(startFromDatabaseIndex,
READ_FROM_DATABASE_SIZE);
if ((pagesList == null) || (pagesList.size() == 0)) {
break;
}
if (pagesList.size() < READ_FROM_DATABASE_SIZE) {
readFlag = false;
} else {
startFromDatabaseIndex = startFromDatabaseIndex + 200;
}
for (int i = 0; i < pagesList.size(); i++) {
process();
}
}
}
'Но Hibernate возвращает случайное число evry time', что вы подразумеваете под этим? –
Что вы выполняете _query_? Если вы явно не укажете порядок, данные будут возвращены в произвольном порядке. Так работают РСУБД; ничего общего с Hibernate, по сути. –