【发布时间】:2012-05-06 08:05:24
【问题描述】:
我有一个类似于以下的 Java 模型:
public class Country {
@Id private String id;
private CurrencyId currencyId;
private List<Province> provinceList;
...
}
public class Province {
@Id private String id;
private Gobernor gobernorId;
private List<City> cityList;
...
}
public class City {
@Id private String id;
private String name;
...
}
我想使用 objectify 存储该数据。但是,由于国家/地区数据可能会发生变化,我还想存储国家/地区数据的存储日期,所以我认为我应该存储一个实体,例如:
public class CountryListEntity {
@Id private String id;
private List<Country> countryList;
private Date storeDate;
}
请注意,如果我可以这样存储它,我将只有一个 ID 为“root”的 CountryListEntity 实体。我对谷歌应用程序如何存储数据以及 objectify 的工作原理知之甚少。我尝试了许多@Embedded 的组合,但我遇到了很多错误,即
不能在@Embedded 数组或集合中放置数组或集合属性
谁能告诉我如何定义这些类?非常感谢存储和检索此“根”实体所需的代码的 sn-p!
【问题讨论】:
-
我不明白
CountryListEntity的含义。您想添加国家对象修改日期吗?在这种情况下,来自 Objectify 的 @PrePersist 注释可能会有所帮助。 -
不清楚您在这里要做什么。您想将国家、省、市存储为单独的实体,它们之间有链接吗?您想将此信息嵌入到单个实体中吗?您应该阅读 Objectify 中的概念文档和 GAE SDK 中的存储数据文档。
-
@stickfigure 我实际上不在乎它们是否是独立的实体。我将一次存储/加载所有数据,所以当我读到可以存储列表时,我认为存储国家列表也意味着存储省和城市。如果这是不可能的,仍然可以将它们存储为单独的实体。
标签: google-app-engine objectify