【发布时间】:2016-06-30 09:14:14
【问题描述】:
我正在使用 Objectify 创建实体:
@Entity
public class Collection {
@Id
private String name;
@Index
private List<Long> viewersIds;
//other fields
}
现在我正在尝试检索具有特定 viewerId 的集合列表,比如说 1。我已经尝试过:
List<Collection> usersCollections = ofy().load().type(Collection.class).filter("viewersIds",1).list();
和
ofy().load().type(Collection.class).filter("viewersIds =",1).list();
和
ofy().load().type(Collection.class).filter("viewersIds ==",1).list();
使用以下方法获取所有集合:
ofy().load().type(Collection.class).list();
我做错了什么? 谢谢!
编辑:
将 Colllection 对象更改为包含字符串列表 viewerIds 而不是 Long
@Index
private List<String> viewersIds;
然后查询它:
ofy().load().type(Collection.class).filter("viewerIds", value).list();
有效。因此,如果列表可以是字符串,这可能是一个解决方案。
【问题讨论】:
-
如果它是一个对象列表,你知道吗?
-
类似 .filter("users.id IN", values) 的东西,假设您有一个名为“users”的用户对象列表,并且您希望通过属于用户对象的名为 id 的属性进行过滤.
标签: google-app-engine objectify google-cloud-datastore