【问题标题】:Why does Google AppEngine have two primary keys, 'key' and 'id/name'?为什么 Google AppEngine 有两个主键,'key' 和 'id/name'?
【发布时间】:2013-10-30 07:25:17
【问题描述】:

如果您将其中一个或另一个留空,或者未在您的实体中指定,它无论如何都会为该实体创建一个键/ID,如在管理控制台数据存储查看器中所示。

额外问题:为什么在 put() 之后无法获得实体对象的 ID? entity.getProperty("id") 返回空值。关键对象不能被序列化,因此不能被 GWT 使用。

参考:

https://developers.google.com/appengine/docs/java/datastore/entities

https://developers.google.com/appengine/docs/java/datastore/jdo/creatinggettinganddeletingdata#Keys

【问题讨论】:

    标签: google-app-engine


    【解决方案1】:

    实体有一个键,并且(持久实体的)键有自动分配的 id 或程序员提供的名称。 name/id 是 Key 的属性,而不是 Entity 的属性。

    你写entity.getKey().getId()(或者.getName(),如果你给键命名的话)而不是Java中的entity.getProperty("id")

    底层细节在:

    https://developers.google.com/appengine/docs/java/javadoc/com/google/appengine/api/datastore/Entity https://developers.google.com/appengine/docs/java/javadoc/com/google/appengine/api/datastore/Key

    `

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多