Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine 对象化检查集合是否包含值_Google App Engine_Enums_Google Cloud Datastore_Objectify - Fatal编程技术网

Google app engine 对象化检查集合是否包含值

Google app engine 对象化检查集合是否包含值,google-app-engine,enums,google-cloud-datastore,objectify,Google App Engine,Enums,Google Cloud Datastore,Objectify,我已经设置了一些定义为Enum的值。现在我想编写一个查询,返回集合中具有特定Enum值的实体数。我像下面这样尝试过,但不起作用(返回实体的空列表) infoTypes声明为Set 使用中的检查值是否在集合中很简单,但如何用另一种方法检查它-集合是否包含值(或一组值)?只能通过索引文件查询数据存储。只需通过传递字段名和值(按您的方式)即可支持对多值属性的相等查询,但字段必须编制索引。Objectify对枚举有非常直观的支持,所以这不应该是问题所在。Objectify中的索引是使用字段上的@Inde

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

infoTypes
声明为
Set


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

只能通过索引文件查询数据存储。只需通过传递字段名和值(按您的方式)即可支持对多值属性的相等查询,但字段必须编制索引。Objectify对枚举有非常直观的支持,所以这不应该是问题所在。Objectify中的索引是使用字段上的@Index完成的。

检查字段上是否有@Index。@Ashish工作正常。我还没有在
infoTypes
集合上添加
@Index
注释。你能把这个作为答案贴出来吗?这样我就可以投票接受了。谢谢汤姆。贴出答案的细节,以便任何人都可以看到它的完整图片。我可以检查集合是否包含密钥吗?不适合我,可能是个关键问题。我有一个包含密钥集合的实体。我想查询集合中有特定键的实体。@vandus使用筛选器查询
@Index List myEntities
myEntities={{MyEntity instance}
对我很有效。不确定是否改为使用密钥。
public InfoCount getInfoCount(@Named("info") InfoType type) {
   ofy().load()
        .type(InfoRecord.class)
        .filter("infoTypes", type)
        .count()
}