有时,您创建一个应该存在于另一个实体中的实体类型。但是,如果它变成孤儿,它将没有理由再存在于数据存储区中。
What happens to child datastore objects after deleting the ancestor?
根据上面的链接,
- “删除祖先时不会删除子实体”
- “child_entity.key.parent()。get()将返回None。”
醇>
如果我删除祖先,孩子将没有父母,使其成为孤儿。
这是一个问题,因为它没有理由再留在数据存储区中了。
有没有办法确保数据库中永远不会发生这种情况?
我能想到的可能解决方案是:
但是,我希望有一个更具编程性的正确解决方案,比如属性或属性,可以设置为确保父(key)永远不会指向不存在的实体。 (也就是在删除祖先时自动删除实体)
有吗? 如果是,那是什么? 如果不是,为什么不呢?
答案 0 :(得分:2)
子实体可以从不成为根实体,因为它继续具有相同的父键,即使父项已被删除(或从未存在)。
由于父密钥嵌入在实体的密钥中,因此在实体的生命周期内无法更改实体的父密钥。
至于删除实体时自动删除实体的后代 - 没有这种方法。但它可以以编程方式实现,请参阅How to delete an entity including all children。