如何在Java中使用Google App Engine数据存储区中的列表属性?

时间:2011-04-25 13:05:54

标签: java google-app-engine jpa google-cloud-datastore jdo

要放置在数据存储区中的对象将具有一组标记。

public class Model 
{
    List<String> tagList
    ...
}

在Python中,Google App Engine具有列表属性的概念。 Java中的等效概念(如果存在)以及如何在Java,JPA和/或JDO中使用列表属性?

2 个答案:

答案 0 :(得分:10)

请参阅我的博客文章:Efficient Keyword Search with Relation Index Entities and Objectify for Google Datastore。它讨论了使用关系索引实体和Objectify实现列表属性的搜索。

总结:

  Query<DocumentKeywords> query = ofy.query(DocumentKeywords.class);
  for (String keyword : keywords) {
    query = query.filter("keywords", keyword);
  }

  Set<Key<Document>> keys = query.<Document>fetchParentKeys();

  Collection<Document> documents = ofy.get(keys).values();

其中DocumentKeywords包含其Document实体的所有关键字的列表属性(集合),而Document实体是DocumentKeywords的父级。

答案 1 :(得分:3)

JDO 中使用

@Persistent
private List<ContactInfo> contactInfoSets;