Objectify的增量ID

时间:2013-10-03 06:11:59

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

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

1 个答案:

答案 0 :(得分:1)

据我所知,Objectify传递了App Engine数据存储区的分散ID行为。

快速检查Objectify问题跟踪器并未显示任何人尚未提出增量ID请求。向Objectify开发者提交请求。 http://code.google.com/p/objectify-appengine/issues/list