2つの新しいエンティティをバッチプットに保存したいと思います。ただし、一方のエンティティは他方のエンティティの親です。私はのように見える子オブジェクトにAAフィールドを持っている場合:ペアレント/チャイルドをバッチに保存するObjectifyでAppengineを置く
@Parent 秘密鍵の親の親がまだ保存されていない場合、私は子オブジェクトにこのフィールドの値で埋めるにはどうすればよい
(したがってキーはまだありません)。
2つの新しいエンティティをバッチプットに保存したいと思います。ただし、一方のエンティティは他方のエンティティの親です。私はのように見える子オブジェクトにAAフィールドを持っている場合:ペアレント/チャイルドをバッチに保存するObjectifyでAppengineを置く
@Parent 秘密鍵の親の親がまだ保存されていない場合、私は子オブジェクトにこのフィールドの値で埋めるにはどうすればよい
(したがってキーはまだありません)。
事前に親のIDを割り当てます。次に、親と子(親キー参照付き)を1回のバッチ処理で保存することができます。
そうすることはできません(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)
トランスアクチノンを試しましたか? –
質問は、データストアへの2回の呼び出しではなく、1回のバッチ処理としてどのように行うのですか?または、トランザクションがすべてデータストアに呼び出されますか? – aloo