0

我在我的 appengine java 应用程序中使用 JDO 和谷歌数据存储,一切正常。

当我向 @PersistanceCapable 类添加新属性并部署它时,不再显示“旧”已经持久化的实体。我真的不明白发生了什么。有没有人分享这个主题的理论背景?如果您用相同的新版本替换一个类(serialUID 字段保持不变),编译和部署它,您还应该能够循环现有的“旧版本”实体并使用缺失的信息更新它们,所以他们将保持对应用程序可用!如何做到这一点?我不知道。

EG 我有大约 35 个“位置”实体(Location.class)。我更新 Location.class 以提供一个新的@Persistent 属性“Long LocationExternalID;” 连同它的 getter/setter(s)。我还更改了我的应用程序代码以使用此字段。如何循环所有旧实体来添加这个新属性并设置它的值?看起来像是在反序列化之前测试属性是否可用?

我无法删除并重新创建旧实体,因为它们的键在无主关系中被引用。这样做的工作量太大。

未显示意味着通过查询,它在应用程序加载时获取所有元素以显示在下拉列表中。然后,当我通过 tha 应用程序添加一个新应用程序时,它会出现在下拉列表中并按预期运行。包括旧元素在内的所有元素都在数据存储查看器中可见。

4

0 回答 0