我查找了一堆模型 ID:
List<Long> ids = lookupIds(searchCriteria);
Run Code Online (Sandbox Code Playgroud)
然后我运行一个查询来订购它们:
fooModelList = (List<FooModel>) query.execute(ids);
Run Code Online (Sandbox Code Playgroud)
日志显示这是编译为的 GQL:
Compiling "SELECT FROM com.foo.FooModel WHERE
:p.contains(id) ORDER BY createdDateTime desc RANGE 0,10"
Run Code Online (Sandbox Code Playgroud)
当ids
ArrayList 很小时,这可以正常工作。
但超过一定大小(也许是 40?)我收到此错误:
IllegalArgumentException: Splitting the provided query requires
that too many subqueries are merged in memory.
Run Code Online (Sandbox Code Playgroud)
有没有办法解决这个问题,或者这是 GAE 中的固定限制?