App Engine标识符.密钥与Id

Luc*_*eis 7 java google-app-engine jdo

要在Google App Engine中识别我的JDO对象,我使用该Key类型.它工作正常,但当我需要通过URL传递它时,它会变得有点长.

例如: http://mysite.com/user/aghtaWx1LWFwcHIZCxIGTXlVc2VyGAMMCxIHTXlJbWFnZRgHDA

在我的管理员查看器中查看我的实体时,我可以看到数据存储也为我的实体对象设置了一个"id",它似乎是一个增量数值,与Key字符串相比非常短.我可以使用它来获取有关我的对象的信息吗?我该怎么做呢?我尝试使用getObjectbyId()id而不是密钥...它不起作用.

有任何想法吗?

Ben*_*hko 9

是的,你可以这样做.每当您需要获取ID时,您可以使用以下方法调用.假设您正在使用User名为的实体类的对象user:user.getKey().getId().id是类型的long.见的JavaDoccom.google.appengine.api.datastore.Key更多信息.

只要您拥有ID,就可以从中构建ID Key,然后只需查询该对象.

Key key = KeyFactory.createKey("User", id);
DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
User user = datastore.get(key);
Run Code Online (Sandbox Code Playgroud)