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

时间:2016-10-28 16:25:16

标签: java google-app-engine google-cloud-datastore objectify

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

我有一些学生实体,我有一些教师实体。

我希望教师拥有学生属性,即学生实体列表。

看似简单,似乎工作正常。但是,我今天刚才注意到,当我修改学生的属性时,它似乎不会更新各种教师中的学生学生列表。例如,如果我更改学生的姓名并保存,则教师的学生列表仍将保留其旧名称。几乎就像老师有自己的本地版本的那个对象。

这是对的吗?有什么办法可以让我存储实际的对象吗?或者我必须做一些事情,比如只存储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;
}

提前致谢!

1 个答案:

答案 0 :(得分:1)

使用List<Student>,您将学生数据嵌入教师对象中。要创建指向独立实体的链接,请在教师中存储List<Key<Student>>List<Ref<Student>>