1

我有个问题。我曾经有一个实体,它有一个@id private String key. 但现在我必须将其更改为@id private Long key. 问题是Objectify不会让我。我得到一个

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

所以我不知道该怎么做。

4

1 回答 1

2

我不支持 Objectify(所以希望有人可以介入),但假设 Objectify 正在通过实体键必须恰好具有名称或 ID 之一的限制。创建实体后,密钥是不可变的。

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

  1. 导出数据,在数据存储外部修复,然后清除数据存储并重新加载,或者
  2. 创建并填充一组新类型的并行实体,将相应数据从旧实体迁移到新实体。

在这两种情况下,您都必须手动查找和迁移参考。

这两者都涉及到细致的工作。

于 2011-10-08T04:47:09.773 回答