0

私はGoogle App Engineを初めて使用し、いくつかの問題を見つけています。

これらの 1 つは、組み込みクラスのスキーマの変更に関連しています。

次のようなエンティティがあり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;
}

バックエンドでデータ ストアを表示すると、 values percentage、および and の列examiner_name(examiner_id存在しなくなったフィールド) のみが表示されます。

更新が必要なキャッシュはどこかにありますか? データベース全体を消去し、クリーン ビルドを実行してから再実行しようとしましたが、問題は解決しません。GAE はどこからスキーマを取得しますか?

ありがとう

4

2 に答える 2

0

スキーマの移行に関する Objectify ドキュメントの次のセクションをお読みください。

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

コードのスキーマを変更しても、データストア内のデータは変更されません。実際に変更を加えるには、各レコードをロードして保存する必要があります。

于 2013-10-08T20:00:36.323 に答える