使用 Google App Engine 数据存储中的实体列表

Using lists of entities in Google App Engine Datastore

我正在使用 objectify 和 Google App Engine(由他们的数据存储项目支持)。我对实体列表的工作方式有点困惑。

我有一些 Student 个实体,还有一些 Teacher 个实体。

我希望老师有一个学生 属性,即学生[=的列表37=] 个实体。

这看起来很简单,而且似乎工作正常。但是,我今天才注意到,当我修改 Student 的 属性 时,它似乎并没有更新 Student各种教师学生列表。例如,如果我更改了一个学生的名字并保存了它,那么老师的学生名单仍然是旧名字。几乎就像老师拥有该对象的本地版本一样。

对吗?有什么办法可以存储实际对象?还是我必须做一些事情,比如只存储 ID?

如有任何帮助,我们将不胜感激。

下面是类,供参考:

@Entity
@Index
public class StudentObj {
    @Id public Long id;
    public String StudentName;
}

@Entity
@Index
public class TeacherObj {
    @Id public Long id;
    public String TeacherName;
    public List<StudentObj> students;
}

提前致谢!

通过使用 List<Student>,您将学生数据嵌入到教师对象中。要为独立实体创建 link,请在您的教师中存储 List<Key<Student>>List<Ref<Student>>