为什么Google AppEngine有两个主键,'key'和'id/name'?

Chl*_*loe 0 google-app-engine

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

奖金问题:为什么在放入()之后你不能获得Entity对象的ID?entity.getProperty("id")返回null.密钥对象无法序列化,因此GWT无法使用.

参考:

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

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

Dav*_*ith 5

实体具有Key,而Keys(持久化实体)具有自动分配的ID或程序员提供的名称.name/id是Key的属性,而不是Entity的属性.

而不是entity.getProperty("id")用Java编写entity.getKey().getId()(或者.getName()如果你给了密钥一个名字).

较低级别的详细信息包括:

https://developers.google.com/appengine/docs/java/javadoc/com/google/appengine/api/datastore/Entity https://developers.google.com/appengine/docs/java/javadoc/com/google /应用服务引擎/ API /数据存储/关键

`