如何在Google AppEngine数据存储区中将实体键从Long更改为String?

时间:2012-07-01 10:18:29

标签: google-app-engine google-cloud-datastore primary-key

我有许多类型的实体,其中Key具有自动生成的长ID(例如Person(1234)),但现在我需要将这些键更改为具有String名称(例如Person(“username”))。

我该如何实现这个目标?

2 个答案:

答案 0 :(得分:1)

您有两种选择:

  1. 向实体添加用户名属性,并按用户名获取(使用查询)实体。
  2. 创建Person实体时,提供key_name(Person(key_name = username,...)),但您需要通过重新创建它们来迁移所有现有Person实体。

答案 1 :(得分:0)

将实体保存到数据存储区后,无法更改其密钥。因此,您要么必须使用现有密钥,要么使用新密钥创建新实体,并将任何现有指针重新映射到原始实体。