我正在将现有的 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 对象的所有成员属性都变为空。显然,这些属性没有迁移。
我准备重新设置我的 Session 对象,但如果成员属性为空,那是不可能的。谁能解释我做错了什么,如果这个问题可以解决?