当它们没有父实体(它们是根实体)时,为什么相同类型的实体不隐含在同一个实体组中?这是否意味着如果我想做例如将数据从 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")])