Новый выпуск 1.3.1 GAE опустил предел в 1000 записей:
Не более 1000 результатов предел - это
справа: с добавлением курсоров и
кульминация многих меньших
Стабильность и производительность хранилища данных
улучшения за последние несколько месяцев,
теперь мы достаточно уверены, чтобы удалить
максимальный предел результата в целом.
Однако примечания к выпуску содержат подробное описание , в котором не упоминается JPA, только JDO и API низкого уровня:
В JDO вы можете использовать расширение и
класс JDOCursorHelper для использования
курсоры с запросами JDO.
JPA не упоминается, и мои тесты с использованием query.setFirstResult(n)
по-прежнему показывают те же сообщения об ошибках, если n больше 1000.
java.lang.IllegalArgumentException: offset may not be above
1000
at
com.google.appengine.api.datastore.DatastoreApiHelper.translateError(DatastoreApiHelper.java: 33)
at
com.google.appengine.api.datastore.DatastoreApiHelper.makeSyncCall(DatastoreApiHelper.java:
60)
at
com.google.appengine.api.datastore.PreparedQueryImpl.runQuery(PreparedQueryImpl.java:
115) ...
выберите количество (*) :
Я также обнаружил, что select count(*) from MyEntity
, который имеет более 1000 экземпляров, возвращает 1000.