親がない(ルートエンティティである)のに、同じ種類のエンティティが暗黙的に同じエンティティグループに含まれないのはなぜですか?たとえば、MySQLからHRDにデータを書き込むバッチ操作を実行したい場合は、次のようになります。
db.put([Person(name=person.name) for person in cursor.execute("SELECT * FROM person")])
そして私はこの理由でトランザクションを使用する必要があります:
注:db.put()またはdb.delete()のバッチ呼び出しは、一部のエンティティでは成功する可能性がありますが、他のエンティティでは成功しない可能性があります。呼び出しが完全に成功するか完全に失敗することが重要な場合は、トランザクションを使用する必要があり、影響を受けるすべてのエンティティは同じエンティティグループに属している必要があります。
ソース:https ://developers.google.com/appengine/docs/python/datastore/entities#Batch_Operations
トランザクションの目的でのみ実際のエンティティとして存在しない共通のルート親キーを作成する必要がありますか?
parent_key = db.Key.from_path('Human', 'human')
db.put([Person(parent=parent_key, name=person.name) for person in cursor.execute("SELECT * FROM person")])