0

我是谷歌应用引擎的新手,我发现它存在一些问题。

其中之一与更改嵌入式类的架构有关:

我有一个实体Exam如下:

@Entity public class Exam{
    @Id public Long id;
    ...
    public List<PairingPopulationSet> pairing_population_data = new ArrayList<PairingPopulationSet>();
}

PairingPopulationSet已从:

@Embed public class PairingPopulationSet {
    public Long examiner_id;
    public String examiner_name;
    public Integer percentage;
}

@Embed public class PairingPopulationSet {
    public Integer paper;
    public Long examiner_1_id;
    public String examiner_1_name;
    public Long examiner_2_id;
    public String examiner_2_name;
    public Integer percentage;
}

当我在后端查看数据存储时,我只看到 valuespercentage和 columnsexaminer_nameexaminer_id(不再存在的字段)。

是否有需要更新的缓存?我已经尝试擦除整个数据库,执行干净的构建然后重新运行,但是问题仍然存在,GAE 从哪里提取其模式?

谢谢

4

2 回答 2

0

阅读有关迁移模式的 Objectify 文档的这一部分:

https://code.google.com/p/objectify-appengine/wiki/SchemaMigration

更改代码架构不会更改数据存储区中的数据。您必须加载 + 保存每条记录才能实际进行任何更改。

于 2013-10-08T20:00:36.323 回答
0

GAE 只是向您显示数据存储中的内容,没有我知道的缓存或模式。你在哪里看?您应该使用查看数据页面:
https://appengine.google.com/datastore/explorer?&app_id=[project_id]

如果即使在您重新创建所有数据后仍然显示旧字段,那么我建议您可能仍在运行旧版本的应用程序。

于 2013-10-08T16:58:32.117 回答