Google DataStore - как получить данные по идентификатору / имени? - PullRequest
2 голосов
/ 22 марта 2012

Я пытаюсь написать запрос для хранилища данных.

Я знаю, что DataStore автоматически назначает уникальный «ID / Имя» каждой строке, и я хотел получить данные из строки с определенным «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 Ответ

2 голосов
/ 22 марта 2012

Лучше всего использовать get вместо запроса:

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

Если вам необходимо выполнить запрос, имя свойства будет __key__, и вам нужно фильтровать по полностью сконструированному ключу, а не простоИдентификатор сообщения.

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