自升级到GAE 1.8以来,在Objectify中使用@Id进行注释时,我会得到分散的ID:
@Id
private Long id;
即使我理解在避免云平台上的热点方面需要分散的ID,但Objectify还有一种方法可以让旧的增量ID恢复吗?必须在UI中显示六进制值(如1DZENH6BSOW)以避免大量生成的64位id,但不会将其删除。
我很高兴有一个辅助注释@IdLegacy与@Id一起工作,然后@Id仍会生成长ID,我可以使用旧ID进行显示。
SOLUTION:
在我的construtor中,我有一段简单的代码,如果不存在,我会分配一个id:
if (getId() == null){
ObjectifyFactory f = new ObjectifyFactory();
Key<MyEntity> key = f.allocateId(MyEntity.class);
setId(key.getId());
}
答案 0 :(得分:1)
据我所知,Objectify传递了App Engine数据存储区的分散ID行为。
快速检查Objectify问题跟踪器并未显示任何人尚未提出增量ID请求。向Objectify开发者提交请求。 http://code.google.com/p/objectify-appengine/issues/list