【问题标题】:Using lists of entities in Google App Engine Datastore使用 Google App Engine 数据存储区中的实体列表
【发布时间】:2016-10-28 16:25:15
【问题描述】:

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

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

我希望 Teacher 有一个 students 属性,即 Student 实体列表。

这似乎很简单,而且似乎工作正常。但是,我今天才注意到,当我修改 Student 的属性时,似乎并没有更新各种 Teacher 中的 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;
}

提前致谢!

【问题讨论】:

  • 您应该存储密钥。
  • 你的意思是键列表而不是对象?

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2010-12-03
    • 2011-08-16
    • 1970-01-01
    • 2016-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-27
    • 2017-11-04
    相关资源
    最近更新 更多