获取yaml中的特定arraylist元素,以便从数据存储区中检索数据

时间:2015-11-21 21:10:23

标签: java google-app-engine yaml google-cloud-datastore appcfg

我正试图以csv格式从谷歌云数据存储中提取所有实体。

我发现了一个很棒的链接,它帮了我很多忙(https://vikashazrati.wordpress.com/2010/09/20/downloading-datastore-data-from-a-java-application-on-google-app-engine/

我的应用程序是用java。

创建的

我有两个问题:

一个。仅检索子类的索引字段,而不是全部。我应该索引SubClass的所有字段/属性(我的理解是索引所有字段不是一个好主意,如果我错了请纠正我)

湾我有一个arrayList作为这个实体的一部分,我只需要max index上的元素,比如arrayList [arrayList.size() - 1],我无法检索它。 (只是FYI,arrayList由特定类的对象组成,即这是一个复合属性,在检索到所需对象后,我计划打印检索此复合属性的成员1比较像arrayList [arrayList.size( )-1] .member1)

任何指针都会有所帮助。

提前致谢

1 个答案:

答案 0 :(得分:1)

Wrt(a),索引一切都是可行的 - 问题是如果你写了很多实体它会变得相当昂贵(每个实体 - 你需要更新许多索引)。远程API https://cloud.google.com/appengine/docs/java/tools/remoteapi可能是更好的方法。

Wrt(b),这类问题的通常解决方案是“非规范化” - 引入一些冗余以便于查询和获取。因此,例如,如果您有一个foo成员列表,请添加一个冗余的last_foo成员(每次修改foo时会有少量代码)等于最后一个foo的项目。写作需要额外的一点费用,但是,对于许多应用程序而言,查询和提取的节省不成比例(对于大多数应用程序来说查询和提取更频繁)。