Google App Engine: лимит в 1000 записей все еще присутствует в JPA? - PullRequest
1 голос
/ 15 февраля 2010

Новый выпуск 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.

Ответы [ 3 ]

2 голосов
/ 24 сентября 2010

В версии 1.3.6 сняты ограничения:

Версия 1.3.6 - 17 августа 2010 г.

Результаты запросов количества хранилищ данных () и смещения для всех запросов хранилища данных больше не ограничены 1000.

http://code.google.com/p/googleappengine/wiki/SdkReleaseNotes

0 голосов
/ 25 февраля 2015

Я использую JPA для доступа к хранилищу данных Google и могу получать более 3000 записей одновременно.Я не думаю, что лимит все еще существует.

0 голосов
/ 15 февраля 2010

«Расширения» JDO в этом «подробном описании» приравниваются к «подсказкам» JPA в запросе, так почему бы не установить эту же подсказку для запроса JPA?

Курсор курсора = Cursor.fromWebSafeString (cursorString); query.setHint (JDOCursorHelper.CURSOR_EXTENSION, курсор);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...