建立实体组,同时保持对Long ID的访问

时间:2010-10-06 17:51:59

标签: google-app-engine transactions google-cloud-datastore

我正在使用appengine数据存储区,并且我的所有实体都将Long ID作为其PrimaryKey。我使用这些ID与客户端进行通信,因为完整的密钥需要更多的带宽才能传输。

现在,我想构建实体组,以便我可以在事务中执行复杂的操作,而http://code.google.com/appengine/docs/java/datastore/transactions.html#Entity_Groups似乎需要使用Keys或String编码键 - 简单的Longs不是一个选项。 / p>

我不介意重构一下使用Keys,但我仍然想避免通过网络发送庞然大物。如何为主键为Key的实体获取唯一(每种类型)Long标识符?

1 个答案:

答案 0 :(得分:3)

您不必使用名称(字符串)。所有采用名称的KeyBuilder方法也都采用了带有ids(longs)的对应方。

对于传输,您只需要Key的名称或ID部分。一旦知道了id或名称,就可以重建密钥服务器端。如果它是子实体,您需要知道父项和子项的名称或ID。