如何从Google应用引擎中的密钥返回自动生成的数字ID?

时间:2013-06-02 03:08:16

标签: java android google-app-engine servlets

继承我的代码

Entity post = new Entity("Post");
int ID = post.getKey().getId();
post.setProperty("ID", ID);

但我的数据存储区中ID显示为0.

我做错了什么?

2 个答案:

答案 0 :(得分:3)

在将实体放入数据存储区之前,您不会拥有ID getId()

为什么要将Key中的id存储为实体的属性。这完全是多余的。此外,密钥的ID不能改变,重新加强冗余。

答案 1 :(得分:0)

您可以使用 allocateIds 方法生成唯一ID。

这是一个例子。

DatastoreService datastoreService = DatastoreServiceFactory.getDatastoreService();

KeyRange keyRange = datastoreService.allocateIds("CartItem", 1L);

// you have ID here before save
Entity item = new Entity(keyRange.getStart());
datastoreService.put(item);