我应该如何向持久化实体添加属性?

时间:2012-06-26 09:44:25

标签: google-app-engine google-cloud-datastore jdo

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

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

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

我无法删除并重新创建旧实体,因为它们是在无主关系中引用的。做太多工作。

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

0 个答案:

没有答案