現在、既存の Google AppEngine アプリケーションをマスター/スレーブ データストア (MSD) から新しい高レプリケーション データストア (HRD) に移行中です。アプリケーションは Java で書かれており、永続化のために Objectify 3.1 を使用しています。
私の古い (MSD) アプリケーションには、次のようなエンティティがあります。
public class Session {
@Id public Long id;
public Key<Member> member;
/* other properties and methods */
}
新しい (HRD) アプリケーションでは、これを次のように変更しました。
public class Session {
@Id public Long id;
// HRD: @Parent is needed to ensure strongly consistent queries.
@Parent public Key<Member> member;
/* other properties and methods */
}
Session オブジェクトが親の Member オブジェクトと完全に一致している必要があります。
Google の HRD 移行ツールを使用してアプリケーション (の作業コピー) を移行すると、すべてのメンバーとセッションが存在します。ただし、Session オブジェクトのすべてのメンバー プロパティは null になります。どうやら、これらのプロパティは移行されていません。
Session オブジェクトの親を変更する準備はできていましたが、メンバー プロパティが null の場合、それは不可能です。誰かが私が間違っていることを説明できますか?この問題を解決できるかどうか?