2010-07-09 2 views
0

Я использую java для кода GAE, я прочитал API низшего уровня GAE Java и пока не могу найти ответ на мой вопрос.Как получить все виды в хранилище данных приложения google?

Я хочу знать, есть ли способ, которым я могу вызвать метод/сделать JDOPL, и он возвращает все разные объекты в моем хранилище данных.

ответ

2

Вы можете использовать статистику хранилища данных API:

http://code.google.com/appengine/docs/java/datastore/stats.html

Похоже, что __Stat_Kind__ статистика даст вам информацию, которую Вы хотите.

+0

спасибо! вы правы, я нашел эту ссылку через другой форум, ожидая ответа – chin

2

Я нашел рабочее решение here. (Она не работает в локальном сервере развертывания по состоянию на 9 июля 2010 г.)

DatastoreService datastore = DatastoreServiceFactory.getDatastoreService(); 
PreparedQuery global = datastore.prepare(new Query("__Stat_Kind__")); 

for(Entity globalStat : global.asIterable()) 
{ 
    Long totalBytes = (Long) globalStat.getProperty("bytes"); 
    Long totalEntities = (Long) globalStat.getProperty("count"); 
    String kindName = (String) globalStat.getProperty("kind_name"); 
    resp.getWriter().println("[" + kindName + "] has " + totalEntities + " entities and takes up " + totalBytes + "bytes<br/>"); 
} 
2

Вы можете использовать Metadata 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()); 
} 
Смежные вопросы