我尝试在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) {
(...)
}
感谢您的帮助! 亨利
答案 0 :(得分:2)
是的,如果您的标签列表没有变大,(超过10k,看看字段大小limits)
你现在可以查询你的MyClass:
Query q = new Query("myClass")
.addFilter("tags",
Query.FilterOperator.EQUAL,
"gae");