我正在尝试为 DataStore 编写查询。
我知道 DataStore 自动为每一行分配一个唯一的“ID/名称”,并且我想从具有特定“ID/名称”的行中获取数据。
我正在执行以下操作,但它不起作用:
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);
我做错了什么?
最佳答案
最好的方法是使用 get
而不是查询:
datastoreService.get(KeyFactory.createKey("ListOfMessages", message_id));
如果您必须查询,属性名称为__key__
,并且您需要过滤完整构造的键,而不仅仅是message_id。
query.addFilter("__key__", Query.FilterOperator.EQUAL, KeyFactory.createKey("ListOfMessages", message_id));
关于java - Google DataStore - 如何按 ID/名称获取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9815496/