【发布时间】:2013-05-28 13:55:48
【问题描述】:
这是我的代码
Entity post = new Entity("Post");
int ID = post.getKey().getId();
post.setProperty("ID", ID);
但 ID 在我的数据存储中显示为 0。
我做错了什么?
【问题讨论】:
标签: java android google-app-engine servlets
这是我的代码
Entity post = new Entity("Post");
int ID = post.getKey().getId();
post.setProperty("ID", ID);
但 ID 在我的数据存储中显示为 0。
我做错了什么?
【问题讨论】:
标签: java android google-app-engine servlets
在将实体放入数据存储区之前,您不会有 ID getId()。
为什么要将 Key 中的 id 存储为实体的属性。这是完全多余的。此外,密钥的 id 也无法更改以增强冗余。
【讨论】:
int ID = post.getKey().getId();之后就可以得到
您可以使用方法 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);
【讨论】: