使用Java随机查询Google App Engine数据存储区实体

时间:2014-12-19 23:40:46

标签: java google-app-engine google-cloud-datastore

假设我的数据存储区中有100个实体。

我已根据使用

的“年龄”属性对我的查询进行了排序
Query q = new Query("EntityTYPE").addSort("age", SortDirection.DESCENDING);

我有一个来自另一个函数的变量startPoint,它告诉我所需结果的起点。

现在我需要从排序查询中查询10个实体(startPoint到startPoint + 10)。

示例:如果startPoint = 51,我需要结果实体的值为排序查询的51-61行。

如何在Java中实现它?

如果需要进一步的信息,请发表评论。

1 个答案:

答案 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:)