Как получить все виды сущностей с сервера GAE? - PullRequest
3 голосов
/ 21 мая 2010

Как я могу получить все типы сущностей с сервера GAE? Это возможно? Я хочу сделать менеджер БД для GAE.

Ответы [ 2 ]

1 голос
/ 24 апреля 2013

Вы можете использовать Метаданные API . Например:

Query query = new Query(Entities.KIND_METADATA_KIND);
DatastoreService datastoreService = DatastoreServiceFactory.getDatastoreService();

Iterable<Entity> entityIterable = datastoreService.prepare(query).asIterable();

for(Entity entity : entityIterable) {
    System.out.println("Entity kind: " + entity.getKey().getName());
}
0 голосов
/ 01 июня 2010

Лучший способ сделать это - программно прочитать статистику хранилища данных. См. Документы для этого в Python или Java . Вот простой пример на Python:

>>> from google.appengine.ext.db import stats
>>> kinds = stats.KindStat.all().fetch(1000)
>>> kind_names = [x.kind_name for x in kinds]
>>> kind_names
[u'A', u'AAFoo', u'AModel', u'ASDBD', u'Abc', u'Accumulator', u'Activity', # ...

Вы можете проверить это сами в интерактивной консоли .

Статистика хранилища данных также предоставляет кучу других деталей, которые будут полезны при написании инструмента управления хранилищем данных. Удачи!

...