App Engine上的getObjectsById

Thi*_*ilo 5 java google-app-engine jdo datanucleus

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

在这里需要使用什么样的系列?Google数据存储密钥不能用作对象ID.

Thi*_*ilo 2

不是直接答案,作为 的替代方案getObjectsById,您似乎可以使用JDOQL 查询按键加载多个实体

public List getById(List keys) {
   Query q = pm.newQuery(
      "select from " + Book.class.getName() + " where :keys.contains(key)");
   return (List) q.execute(keys);
}
Run Code Online (Sandbox Code Playgroud)

显然,此查询经过优化以使用高效的低级批量 API。

不过,键的顺序确实会丢失,因此您必须在 Java 领域对结果重新排序。