使用Java在gae数据存储区中存储和查询字符串列表

时间:2013-06-28 20:03:54

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

我尝试在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) {
  (...)
}

感谢您的帮助! 亨利

1 个答案:

答案 0 :(得分:2)

是的,如果您的标签列表没有变大,(超过10k,看看字段大小limits

你现在可以查询你的MyClass:

Query q = new Query("myClass")
                .addFilter("tags",
                           Query.FilterOperator.EQUAL,
                           "gae");