通过键对象化查询

objectify query by keys

我有一个实体

@Entity
public class Book{
  ...
  List<Key<Page>> pages;
  ...
}

所以为了买一本书我做了

Book book = ofy().load().type(Book.class).id(id).now();

拿到书后,我想拿到书页;因此我的问题是:我可以按键查询还是必须按 ID 查询?如果我有我能做的ID

List<Page> pages = ofy().load().type(Page.class).ids(ids);

但我需要的是

List<Page> pages = ofy().load().type(Page.class).keys(keys);

否则我必须进行线性工作以遍历键以提取 ID 或名称,我什至不确定这是否有效,因为键实际上有父项,因此页面的键构造为

Key pageKey = KeyFactory.createKey(bookKey, Page.class.getSimpleName(),someString);

那么在这种情况下我的最终答案是什么?

您可以轻松地通过键加载实体。来自 ofy 的概念页面 (https://code.google.com/p/objectify-appengine/wiki/Concepts)

Map<Key<Object>, Object> lotsOfThings = ofy().load().keys(carKey, airplaneKey, chairKey, personKey, yourMamaKey);