Domanda

Sto cercando di eliminare alcuni dati indesiderati dal mio archivio dati con Java e trovato del codice usando DatastoreService che ho modificato per eliminarne altrettanti voci possibili in 10 secondi:

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

Sembra funzionare quando eseguo questo. Controllo il visualizzatore di dati della console e il tipo che sto cercando di eliminare (" PostalCodes ") non c'è più, ma il giorno dopo averlo fatto, il tutto è stato ripristinato. Mi sto perdendo a chiamare per svuotare o eseguire il commit o qualcosa del genere?!?

C'è un modo migliore per farlo?

È stato utile?

Soluzione

Dai un'occhiata a una domanda simile: Elimina tutti i dati di un tipo in Google App Engine per altri modi per eliminare collettivamente le informazioni.

Altri suggerimenti

È possibile eliminare tutte le entità di un determinato tipo nella sezione "Amministratore DataStore":

Seleziona entità e quindi seleziona "Elimina entità":

inserisci qui la descrizione dell'immagine

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;
    }
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top