我正在尝试为DataStore编写查询。
我知道DataStore会自动为每一行分配一个唯一的“ID / Name”,我想从具有特定“ID / Name”的行中获取数据。
我正在做以下事情,但它不起作用:
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);
我做错了什么?
答案 0 :(得分:2)
最好的方法是使用get
而不是查询:
datastoreService.get(KeyFactory.createKey("ListOfMessages", message_id));
如果必须查询,则属性名称为__key__
,您需要对完全构造的键进行过滤,而不仅仅是message_id。
query.addFilter("__key__", Query.FilterOperator.EQUAL, KeyFactory.createKey("ListOfMessages", message_id));