Google App Engineでの一括エンティティ削除
-
06-07-2019 - |
質問
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;
}
これを実行すると動作するようです。コンソールのデータビューアーを確認します 削除しようとしている種類(" PostalCodes")はなくなりましたが、 これを行った後、すべてが復元されました。私は行方不明です フラッシュするか、コミットするか、何かを呼び出しますか?!?
これを行うより良い方法はありますか?
解決
同様の質問をご覧ください:削除情報を一括削除する他の方法については、Google App Engineの種類のすべてのデータ。
他のヒント
「DataStore Admin」セクション内で特定のタイプのすべてのエンティティを削除することが可能です:
エンティティを選択し、「エンティティの削除」を選択します:
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;
}
}
所属していません StackOverflow