我的数据存储表是命名文档,其结构如下: 键,写操作,ID /名称,html,名称。 样本数据是:
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返回随机字符串,而是返回文档(“1)。有没有办法从结果数组中获取键?
答案 0 :(得分:2)
密钥不是“随机字符串”。它是Key对象的字符串编码。
我使用Python API而不是Java API,但在Python中,您只需在Key实例上调用str()
即可获得编码版本。在Java中,您可以使用key.toString()
,或者您可能需要以某种方式对其进行序列化。