2012-05-08 7 views
0

2つの新しいエンティティをバッチプットに保存したいと思います。ただし、一方のエンティティは他方のエンティティの親です。私はのように見える子オブジェクトにAAフィールドを持っている場合:ペアレント/チャイルドをバッチに保存するObjectifyでAppengineを置く

@Parent 秘密鍵の親の親がまだ保存されていない場合、私は子オブジェクトにこのフィールドの値で埋めるにはどうすればよい

(したがってキーはまだありません)。

+0

トランスアクチノンを試しましたか? –

+0

質問は、データストアへの2回の呼び出しではなく、1回のバッチ処理としてどのように行うのですか?または、トランザクションがすべてデータストアに呼び出されますか? – aloo

答えて

1

事前に親のIDを割り当てます。次に、親と子(親キー参照付き)を1回のバッチ処理で保存することができます。

0

そうすることはできません(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) 
関連する問題