假设我的数据存储区中有100个实体。
我已根据使用
的“年龄”属性对我的查询进行了排序Query q = new Query("EntityTYPE").addSort("age", SortDirection.DESCENDING);
我有一个来自另一个函数的变量startPoint,它告诉我所需结果的起点。
现在我需要从排序查询中查询10个实体(startPoint到startPoint + 10)。
示例:如果startPoint = 51,我需要结果实体的值为排序查询的51-61行。
如何在Java中实现它?
如果需要进一步的信息,请发表评论。
答案 0 :(得分:2)
做这样的事情的方法是使用"偏移"。不幸的是,它实现了抵消它的方式,它没有"跳过"看着1-50。它会读取它们(花费您在每日配额/预算中的读数),并返回以下结果。它会做你想要的,但不幸的是,它仍然会向你收取费用
你必须写一些像
这样的东西List<Entity> getRandomEntities() {
DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
Query queryForEntities = new Query("Entity");
PreparedQuery preppedEntityQuery = datastore.prepare(q);
return preppedEntityQuery.asList(FetchOptions.Builder.withOffset([OFFSET_YOU_WANT]).withLimit([AMOUNT_YOU_WANT]));
}
如果您需要其他信息,请查看this:)