如何在Objectify中更改键

时间:2011-10-08 04:14:34

标签: google-app-engine objectify

我有问题。我曾经拥有一个@id private String key的实体。但现在我必须将其更改为@id private Long key。问题是客观化不会让我。我得到了

IllegalStateException: Loaded Entity has name but com.XX.YYY.MyClass has no String @id

所以我不知道该怎么做。

1 个答案:

答案 0 :(得分:2)

我没有参与Objectify(所以希望有人可以介入),但是假设Objectify正在通过限制,即实体密钥必须只有一个名称或id。创建实体后,密钥是不可变的。

重新输入密钥的唯一方法是

  1. 导出数据,在数据存储区外修复,然后清除数据存储区并重新加载,或
  2. 创建并填充新类型的并行实体集,将相应数据从旧实体迁移到新实体。
  3. 在这两种情况下,您都必须手动查找和迁移参考文献。

    这些都涉及细致的工作。