Java 从序列化列表字段到列表字段对象化

Java 从序列化列表字段到列表字段对象化,java,google-app-engine,objectify,Java,Google App Engine,Objectify,我在我的GAE java服务器上使用objectify,我想用一个字段更新一个类实体,该字段是带有@Serialize注释的列表,现在我想将它转换为一个简单的列表 我该怎么做?基本上,您可以创建第二个保存首选格式的字段,并使用@OnLoad方法迁移数据。然后加载/保存所有实体 然而,有一个陷阱。如果您有一个繁忙的系统,您可以放心,旧版本和新版本将共存一些请求。因此,您必须对转换稍微小心一点。最安全的方法是: 部署创建(和保留)新字段的代码,优先使用该字段,但不向其写入数据 部署在@OnLoad中

我在我的GAE java服务器上使用objectify,我想用一个字段更新一个类实体,该字段是带有@Serialize注释的列表,现在我想将它转换为一个简单的列表


我该怎么做?

基本上,您可以创建第二个保存首选格式的字段,并使用
@OnLoad
方法迁移数据。然后加载/保存所有实体

然而,有一个陷阱。如果您有一个繁忙的系统,您可以放心,旧版本和新版本将共存一些请求。因此,您必须对转换稍微小心一点。最安全的方法是:

  • 部署创建(和保留)新字段的代码,优先使用该字段,但不向其写入数据
  • 部署在
    @OnLoad
    中迁移数据的代码,使用
    @IgnoreSave(IfNull.class)
    删除旧数据(或按您的喜好)
  • 通过加载+保存重新处理所有实体
  • 从代码中删除旧字段