Google DataStore - 如何按ID /名称获取数据?

时间:2012-03-22 02:07:29

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

我正在尝试为DataStore编写查询。

我知道DataStore会自动为每一行分配一个唯一的“ID / Name”,我想从具有特定“ID / Name”的行中获取数据。

enter image description here

我正在做以下事情,但它不起作用:

DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
Query query = new Query("ListOfMessages");
query.addFilter("**ID/Name**", Query.FilterOperator.EQUAL, message_id);
List<Entity> users = datastore.prepare(query).asList(FetchOptions.Builder.withLimit(1));
for (Entity user : users) 
{
    message=(String) user.getProperty("smil_message");
}
System.out.println("message"+message);

我做错了什么?

1 个答案:

答案 0 :(得分:2)

最好的方法是使用get而不是查询:

datastoreService.get(KeyFactory.createKey("ListOfMessages", message_id));

如果必须查询,则属性名称为__key__,您需要对完全构造的键进行过滤,而不仅仅是message_id。

query.addFilter("__key__", Query.FilterOperator.EQUAL, KeyFactory.createKey("ListOfMessages", message_id));