1

我的数据存储表名为 document,其结构如下:Key、Write Ops、ID/Name、html、name。样本数据为:

Key: aglub19hcHBfaWRyDgsSCGRvY3VtZW50GAEM 
Write Ops:6
ID/Name:1
html:"<div>something</div>
name: "Untitled name"

其中前三列由 Google App Engine 创建。我使用以下代码从数据存储中获取实体:

int PAGE_SIZE = 20;
DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
PreparedQuery queryString = datastore.prepare(new Query("document"));
int rowCount = queryString.countEntities();
int offset = 0;
//fetch results from datastore based on offset and page size
FetchOptions fetchOptions = FetchOptions.Builder.withLimit(PAGE_SIZE);
QueryResultList<Entity> results = queryString.asQueryResultList(fetchOptions .offset(offset));

当我尝试使用 .getKey() 方法从实体中检索 Key 列时,会出现问题。它不是从 Key 列返回随机字符串,而是返回 document("1)。有没有办法从结果数组中获取 Keys?

4

1 回答 1

2

密钥不是“随机字符串”。它是 Key 对象的字符串编码。

我使用 Python API 而不是 Java API,但在 Python 中,您可以简单地调用str()Key 实例来获取编码版本。在 Java 中,您可能可以使用key.toString(),或者您可能需要以某种方式对其进行序列化。

于 2012-08-08T14:55:00.597 回答