2013-06-28 89 views
1

我嘗試在實體中存儲字符數組中的數據存儲區。類似的東西:使用Java存儲和查詢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); 

是這種方法的正確,以及如何在查詢中使用的標籤屬性(例如,必須在標籤列表中的值GAE的所有元素)?

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

感謝您的幫助! 蒂埃裏

回答

2

肯定這就是正確的,如果你的標籤列表中沒有得到大的,(更多然後10K,看看字段大小limits

你可以現在你MyClass的查詢是這樣的:

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