1

我正在尝试使用 Java 从我的数据存储中删除一些不需要的数据,并使用我修改的 DatastoreService 找到了一些代码,以便在 10 秒内删除尽可能多的条目:

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

当我运行它时它似乎工作。我检查了控制台的数据查看器,我试图删除的类型(“邮政编码”)不见了,但在我这样做的第二天,整个事情就恢复了。我错过了刷新或提交的电话吗?!?

有一个更好的方法吗?

4

2 回答 2

1

可以在“DataStore Admin”部分中删除特定类型的所有实体:

选择实体,然后选择“删除实体”:

在此处输入图像描述

于 2013-01-17T21:42:53.570 回答
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;
    }
}
于 2010-12-15T08:37:13.760 回答