我正在尝试使用App Engine数据存储区(高复制数据存储区,HRD),我必须使用低级API。我以前从未使用过实体数据库,所以我遇到了一些问题。我试图存储一些帖子和评论,每个帖子都可以有更多评论
I tried this code for Post, but the problem is how to make ID auto-increment ?
Entity post = new Entity("post", ID);
post.setProperty("content", postContent);
post.setProperty("time", timeStamps);
此代码用于评论,但我不明白如何使用祖先来建立帖子和评论之间的关系,我应该只添加祖先属性并将ID值放在上面吗?
Entity comment = new Entity("comment", ID);
comment.setProperty("ancestor",postID);
comment.setProperty("content", commentContent);
comment.setProperty("time", timeStamps);
DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
datastore.put(comment);
答案 0 :(得分:0)
要使用自动增量功能,您需要更改应用的配置以使用旧版密钥生成:
<auto-id-policy>
legacy
</auto-id-policy>
然后您可以将代码更改为以下内容:
Entity post = new Entity("post");
post.setProperty("content", postContent);
post.setProperty("time", timeStamps);
如果您没有传递ID,则appengine将生成它
要使用祖先路径,您可以将代码更改为以下内容:
datastore.put(post);
Entity comment = new Entity("comment", post.getKey());
comment.setProperty("content", commentContent);
comment.setProperty("time", timeStamps);
DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
datastore.put(comment);
祖先密钥将作为构造函数arg。
而不是自动增量我建议你使用默认密钥生成,不是增量但仍然是唯一的,
它也应该更快,然后传统