Objectify检查集合是否包含值

时间:2014-08-15 00:08:24

标签: google-app-engine enums google-cloud-datastore objectify

我设置了一些定义为Enum的值。现在我想编写一个查询,返回其集合中具有特定Enum值的entites数。我已经尝试过如下,但它不起作用(返回实体的空列表)。

public InfoCount getInfoCount(@Named("info") InfoType type) {
   ofy().load()
        .type(InfoRecord.class)
        .filter("infoTypes", type)
        .count()
}

infoTypes被声明为Set<InfoType>

使用in检查一个值是否在集合中很简单,但是如何以另一种方式检查它 - 集合是否包含值(或一组值)?

1 个答案:

答案 0 :(得分:2)

只能通过索引文件查询数据存储。简单地通过传递field-name和value(你正在这样做的方式)来支持多值属性的等式查询,但是必须对字段建立索引。 Objectify对枚举有非常直观的支持,因此不应该成为问题。 Objectify中的索引是使用字段上的@Index完成的。