如果您将一个或另一个留空,或者未在您的实体中指定,则无论如何都会为该实体创建一个密钥/ 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
答案 0 :(得分:5)
实体具有Key,而Keys(持久化实体)具有自动分配的ID或程序员提供的名称。 name / id是Key的属性,而不是Entity的属性。
在Java中代替entity.getProperty("id")
而不是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/appengine/api/datastore/Key
`