Java开发2.0: NoSQL - 编程入门网
一个 Map(称为 iparams)创建为带有 3 个属性 —一次比赛的名称、日期和距离。(注意,在 Groovy 中,一个空白 Map 通过 [:]创建。)Race的一个新实例被创建,然后通过 save方法存储到底层数据 存储。
可以通过 Google App Engine 控制台来查看底层数据存储,确保我的数据的 确在那里,如图 2 所示: 图 2. 查看新创建的 Race Java开发2.0: NoSQL(5)时间:2011-09-04 IBM Andrew Glover查找程序方法生成持久存储的实体 现在我已经存储了一个 Entity,拥有查找它的能力将有所帮助。接下来,我 可以添加一个 “查找程序” 方法。在本例中,我将把这个 “查找程序” 方法 创建为一个类方法(static)并且允许通过名称查找这些 Race(即基于 name属 性搜索)。稍后,总是可以通过其他属性添加其他查找程序。 我还打算对我的查找程序采用一个惯例,即指定:任何名称中不带单词 all的 查找程序都企图找到 一个实例。名称中包含单词 all的查找程序(如 findAllByName)能够返回一个实例 Collection或 List。清单 5 展示了 findByName查找程序: 清单 5. 一个基于 Entity 名称搜索的简单查找程序
这个简单的查找程序使用 Google App Engine 的 Query和 PreparedQuery类 型来查找一个类型为 “Race” 的实体,其名称(完全)等同于传入的名称。如 果有超过一个 Race符合这个标准,查找程序将返回一个列表的第一项,这是分页 限制 1(withLimit(1))所指定的。 对应的 findAllByName与上述方法类似,但添加了一个参数,指定 您想要的 实体个数,如清单 6 所示: 清单 6. 通过名称找到全部实体
与前面定义的查找程序类似,findAllByName通过名称找到 Race实例,但是它 返回 所有 Race。顺便说一下,Groovy 的 collect方法非常灵活:它允许删除创 建 Race实例的对应的循环。注意,Groovy 还支持方法参数的默认值;这样,如 果我没有传入第 2 个值,pagination将拥有值 10。 清单 7. 查找程序的实际运行
清单 7中的查找程序按照既定的方式运行:findByName返回一个实例,而 findAllByName返回一个 Collection(假定有多个 “Charlottesville Marathon ”)。 Java开发2.0: NoSQL(6)时间:2011-09-04 IBM Andrew Glover“参赛者” 对象没有太多不同 现在我已能够创建并找到 Race的实例,现在可以创建一个快速的 Runner对象 了。这个过程与创建初始的 Race实例一样简单,只 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |