1

我尝试在 gae 数据存储中存储一个实体内的字符串数组。像这样的东西:

public class MyClass {
  private String id;
  private String name;
  (...)
  private List<String> tags;
  (...)
}

Entity entity = new Entity("MyClass", "myId");
entity.setProperty("name", "My Name");
List<String> tags = new ArrayList<String>();
tags.add("gae");
tags.add("datastore");
entity.setProperty("tags", tags);

这种方法是否正确以及如何在查询中使用 tags 属性(例如,所有在标签列表中具有值 gae 的元素)?

Query query = new Query("MyClass");
query.addFilter(fieldName, FilterOperator.EQUAL, "gae");
Iterable<Entity> result = datastore.prepare(q).asIterable();
for (Entity entity : result) {
  (...)
}

谢谢你的帮助!蒂埃里

4

1 回答 1

2

是的,没错,如果您的标签列表没有变大,(超过 10k,请查看字段大小限制

您现在可以像这样查询 MyClass:

Query q = new Query("myClass")
                .addFilter("tags",
                           Query.FilterOperator.EQUAL,
                           "gae");
于 2013-06-28T20:14:33.017 回答