バッチで 2 つの新しいエンティティを保存したいと思います。ただし、一方のエンティティは他方の親です。子オブジェクトに次のようなフィールドがある場合:
@Parent 秘密鍵の親
親オブジェクトがまだ保存されていない場合 (したがって、キーがまだない場合)、子オブジェクトのこのフィールドに値を入力するにはどうすればよいですか。
バッチで 2 つの新しいエンティティを保存したいと思います。ただし、一方のエンティティは他方の親です。子オブジェクトに次のようなフィールドがある場合:
@Parent 秘密鍵の親
親オブジェクトがまだ保存されていない場合 (したがって、キーがまだない場合)、子オブジェクトのこのフィールドに値を入力するにはどうすればよいですか。
親のIDを事前に割り当てます。次に、親と子 (親キー参照を使用) を 1 回のバッチ書き込みで保存できます。
Yoはそのようにそれを行うことはできません(1つのバッチとして)。
質問がデータの整合性に関係している場合は、トランザクションを使用できます。例:
from google.appengine.ext import db
from app.models import ParentModel, ChildModel
class ARequestHandler(BaseHandler):
def get(self):
def create_parent_and_child():
parent_entity = ParentModel(...)
parent_entity.put()
child_entity = ChildModel(Parent=parent_entity, ...)
child_entity.put()
db.run_in_transaction(create_parent_and_child)