2009-10-24 4 views
1

Я пытаюсь удалить некоторые нежелательные данные из моего хранилища с Java и нашел некоторый код, используя DatastoreService что я модифицированную удалить столько записей, как можно в 10 секунд:Bulk объект удалить в Google App Engine

DatastoreService datastore = DatastoreServiceFactory.getDatastoreService(); 
Query query = new Query("PostalCodes"); 
long starttime = (new Date()).getTime(); 
for (Entity entity : datastore.prepare(query).asIterable()) { 
     datastore.delete(entity.getKey()); 
     if ((new Date().getTime()) > (starttime + 10000)) 
       break; 
} 

Кажется, что работаю, когда я запускаю это. Я проверяю средство просмотра данных консоли , и вид, который я пытаюсь удалить («Почтовые коды»), исчез, но в день после того, как я это сделаю, все было восстановлено. Я пропустил вызов для флеша или совершения или что-то в этом роде?!?

Есть ли лучший способ сделать это?

ответ

1

Посмотрите на аналогичный вопрос: Delete all data for a kind in Google App Engine для других способов массовой информации удалить информацию.

+0

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

0
public final class PMF { 
    private static final PersistenceManagerFactory pmfInstance = 
     JDOHelper.getPersistenceManagerFactory("transactions-optional"); 

    private PMF() { 
     PersistenceManagerFactory pmfInstance = PMF.get(); 
     PersistenceManager pm = pmfInstance.getPersistenceManager(); 
     pm.deletePersistentAll();/* by using this all the entities which are created earlier will be deleted*/ 
    } 

    public static PersistenceManagerFactory get() { 
     return pmfInstance; 
    } 
} 
1

Можно удалить все entitys определенного типа в пределах раздела 'Администратор хранилища данных':

Выберите объекты, а затем выберите 'Удалить Entities':

enter image description here