继承我的代码
Entity post = new Entity("Post");
int ID = post.getKey().getId();
post.setProperty("ID", ID);
但我的数据存储区中ID显示为0.
我做错了什么?
答案 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);