java - App Engine 上的 getObjectById

标签 java google-app-engine jdo datanucleus

根据JDO,您可以使用PersistenceManager.getObjectsById通过对象 ID 加载多个实体实例。

这里需要用到什么样的Collection? Google 数据存储 key 不能用作对象 ID。

最佳答案

像这样使用 PersistenceManager.newObjectIdInstance()

List<Object> ids = new ArrayList<Object>();
for (Key key : keys) {
   ids.add(pm.newObjectIdInstance(Foo.class, key));
}

return (List<Foo>) pm.getObjectsById(ids);

不过,我不确定调用 newObjectIdInstance 的开销有多大(据我所知不应该如此)。

关于java - App Engine 上的 getObjectById,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2017663/

相关文章:

java - 这会在使用后释放我的资源吗?

facebook - Google App Engine Facebook 应用程序身份验证

java - 如何读取appengine内存缓存中的所有键?

google-app-engine - Gae Jdo 坚持一对多关系与双向导航

java - 连接多个结果集

google-app-engine - 为什么要对象化而不是 JDO?

java - JPA 不抛出 EntityExistsException 但生成重复行(自动生成 PK)

java - 刽子手错误的猜测无法正确打印

java - 类型集合的 toArray 方法未定义

java - API 调用 datastore_v3.Put() 的请求太大