2012-04-13 10 views
0

DatastoreService.delete(Key ... keys)を使用してエンティティキーのバッチ削除操作を実行します。 各エンティティはルートエンティティなので、操作はトランザクションなしで実行されます。 バッチサイズはハードコードされており、削除は段階的に実行されます。次の各操作は、先に実行されたgetクエリから受け取ったカーソルを使用してエンティティキーをフェッチするためのキーのみのget queryを実行し、次にバッチ削除クエリを実行します。スキームはうまく動作しているようですが、 削除クエリ中に例外が発生した場合はどうなりますか?DatastoreServiceバッチ削除。例外が発生した場合どうなるか

正常に削除されたエンティティ、または最初の のエンティティを削除する方法はありますか?そして、低レベルのGAEでこの操作がどのように実行されるかを明確にしてください。

答えて

0

例外が発生した場合、未定義のエンティティの一部が削除されています。現在、削除されたリストを取得する方法はありません。

バッチ削除操作全体をもう一度やり直すことをお勧めします。

+0

本当にありがとうございます。残っている唯一の問題は、リトライを試みるときにカーソル(query.startCursor)を使用するか、カーソルを省略して実行する必要があるかどうかです。 – Peter

+0

@Peter実際には、既に持っているキーのリストを使って削除を再試行する必要があるということです。 –

関連する問題