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

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

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

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

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);

我做错了什么?

最佳答案

最好的方法是使用 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/

相关文章:

python - 在 Google App Engine 开发服务器中结合 --backends 和事务任务队列有问题吗?

jquery - 在谷歌应用程序引擎中使用 Bootstrap 提前输入自动完成

python - 如何获取GAE的行id?

google-cloud-datastore - Spring+GCP数据存储: I use repository and want to configure it to use datastore emulator during development or test

java - Java中的有序LinkedList逻辑,每次都会重新分配LinearNode头

java - 测试表达式中的 XSLT 2.0 析取

php - 在 App Engine 中使用 php 为实体设置数据存储父级

java - 分析/优化谷歌应用引擎应用程序的最佳方式是什么?

Java 更改舍入

java - equals 和 hashCode 的通用反射辅助方法