google-app-engine - 按 "key"字段过滤 Objectify 查询

标签 google-app-engine filter google-cloud-endpoints google-cloud-datastore objectify

我有以下对象化关系:

@Entity(“Author”)
public class Author{
  @Id
  private long authorId;
  …

}

@Entity(“Book”)
public class Book{
  @Id
  private long id;
  private Key<Author> authorKey;
  …

}

现在是有趣的部分:我有 authorId(id,不是实体),我需要为该作者查询 Book。我的查询在下面,但它返回一个空列表,而我确实知道该作者在数据存储区中有书籍。那么我该如何解决这个查询呢?

public static List<Book> getBooksForAuthor(Long authorId) {
    Key<Author> authorKey = Key.create(Author.class, authorId);
    return OfyService.ofy().load().type(Book.class).filter("authorKey", authorKey).order(“-date").list();
  }

最佳答案

您将需要@Index Book.authorKeyBook.date 字段。我不记得这是否需要 {authorKey, date} 上的多属性索引,但请尝试不使用它,看看它是否有效。

我还建议您将该字段称为“作者”而不是“authorKey”。

关于google-app-engine - 按 "key"字段过滤 Objectify 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33160305/

相关文章:

android - 无法使用我的服务对象连接到我的谷歌端点,oauth 2.0 获取 IOException : NetworkError

google-app-engine - Google App Engine 突然开始端点身份验证失败

java - 为什么客户端在预热请求后立即在 GAE 上创建新实例

java - 带有 GAE 和 ViewScoped ManagedBean 的 JSF2

go - 通过 Go 中的自定义 io.Writer 编辑敏感数据

android - 谷歌云端点、对象化和持久性

mongodb - 在谷歌云平台上部署mongodb?

list - 使用过滤器迭代列表

python - pandas - 筛选在 groupby 中至少有一列包含非空值的组

ios - 在 iOS 上对 Google Cloud Endpoints 执行同步查询