新的release 1.3.1 of GAE已经删除了1000条记录限制:
不超过1000个结果限制 - 那就是 右:加上游标和 许多小人物的高潮 数据存储的稳定性和性能 过去几个月的改进, 我们现在有足够的信心去除 最大限度的结果限制。
然而,release notes指向detail description的{{3}}链接未提及JPA,仅提及JDO和低级API:
在JDO中,您可以使用扩展名和 要使用的JDOCursorHelper类 带有JDO查询的游标。
未提及JPA,如果n大于1000,则使用query.setFirstResult(n)
的测试仍会显示相同的错误消息。
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) ...
选择计数(*):
我还发现有{1000多个实例的select count(*) from MyEntity
会返回1000。
答案 0 :(得分:2)
版本1.3.6删除了限制:
版本1.3.6 - 2010年8月17日
数据存储计数()查询的结果 和所有数据存储区查询的偏移量 不再限制在1000。
http://code.google.com/p/googleappengine/wiki/SdkReleaseNotes
答案 1 :(得分:0)
“详细描述”中的JDO“扩展”等同于查询上的JPA“提示”,那么为什么不为JPA查询设置相同的提示呢?
Cursor cursor = Cursor.fromWebSafeString(cursorString); query.setHint(JDOCursorHelper.CURSOR_EXTENSION,cursor);
答案 2 :(得分:0)
我正在使用JPA访问Google数据存储区,并且一次可以获取超过3000条记录。我不认为这个限制仍然存在。