1

我正在尝试使用 App Engine Datastore(High Replication Datastore,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);
4

1 回答 1

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);

祖先键将作为构造函数参数放置。

我建议您使用默认密钥生成而不是自动增量,这不是增量但仍然是唯一的,
而且它应该更快,然后是旧版

于 2013-06-27T13:07:59.247 回答