Google App Engine (JDO) 中 ID 的 Key 或 Long

Posted

技术标签:

【中文标题】Google App Engine (JDO) 中 ID 的 Key 或 Long【英文标题】:Key or Long for ID in Google App Engine (JDO) 【发布时间】:2011-07-15 20:03:38 【问题描述】:

我正在使用 JDO 和 Google App Engine 进行存储,我想知道 Key 对象和 Long for id 有什么区别?

我发现长 ID 更实用,是我遗漏了什么吗?

谢谢。

【问题讨论】:

【参考方案1】:

Key 是全局唯一标识符,它在整个应用引擎中唯一标识一个实体。它由两部分组成:

    描述实体所属应用、任何祖先键和实体种类的路径。 ID (a long) 或 key name (a string)。

无论您选择使用长字符串还是字符串作为第二个片段,都有一个Key 对象与存储在数据存储区中的每个实体相关联。

【讨论】:

很好的描述,但同样重要的是要提到,如果您使用 Key,那么您将代码绑定到 Google(或至少存在他们的 Key 类),而如果您使用 long/String 等,那么您有代码中的可移植性(身份) 很好的解释和好点DataNucleus。为了将来更好的可移植性,我将坚持使用 Long 主键。谢谢! 自 2014 年起,Keys 还嵌入了一个可选的命名空间字段。

以上是关于Google App Engine (JDO) 中 ID 的 Key 或 Long的主要内容,如果未能解决你的问题,请参考以下文章

在 Google App Engine 上将 JDO 与 HRD 结合使用

Google App Engine (JDO) 中 ID 的 Key 或 Long

Google App Engine 的 JDO:转义引号

为啥我在 Google App Engine 上使用 JDO 的查询中出现转换错误?

为啥 Google App Engine 文档强调 JDO 而不是 JPA?

使用 Google App Engine 和 JDO 进行全文搜索?