【发布时间】:2013-10-03 06:11:58
【问题描述】:
自从升级到 GAE 1.8 后,在 Objectify 中使用 @Id 进行注释时,我得到了分散的 ID:
@Id
private Long id;
尽管我理解在避免云平台上的热点方面需要分散的 id,但 Objectify 有没有办法恢复旧的增量 id?必须在 UI 中显示十六进制值(如 1DZENH6BSOW)以避免生成大量的 64 位 id,但这并不能解决问题。
我很高兴有一个辅助注释@IdLegacy 与@Id 一起工作,然后@Id 仍将生成长ID,我可以使用旧ID 进行显示。
解决方案:
在我的构造器中,我有一段简单的代码,如果不存在,则分配一个 id:
if (getId() == null){
ObjectifyFactory f = new ObjectifyFactory();
Key<MyEntity> key = f.allocateId(MyEntity.class);
setId(key.getId());
}
【问题讨论】:
标签: google-app-engine google-cloud-datastore objectify