自从升级到 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());
}