WEB开发网
开发学院软件开发Java Java 开发 2.0: NoSQL 阅读

Java 开发 2.0: NoSQL

 2010-07-20 00:00:00 来源:WEB开发网   
核心提示: 查看原图(大图)查找程序方法生成持久存储的实体现在我已经存储了一个 Entity,拥有查找它的能力将有所帮助,Java 开发 2.0: NoSQL(7),接下来,我可以添加一个 “查找程序” 方法,如果有超过一个 Race符合这个标准,查找程序将返回一个列表的第一项,在本

查看原图(大图)

查找程序方法生成持久存储的实体

现在我已经存储了一个 Entity,拥有查找它的能力将有所帮助。接下来,我可以添加一个 “查找程序” 方法。在本例中,我将把这个 “查找程序” 方法创建为一个类方法(static)并且允许通过名称查找这些 Race(即基于 name属性搜索)。稍后,总是可以通过其他属性添加其他查找程序。

我还打算对我的查找程序采用一个惯例,即指定:任何名称中不带单词 all的查找程序都企图找到 一个实例。名称中包含单词 all的查找程序(如 findAllByName)能够返回一个实例 Collection或 List。清单 5 展示了 findByName查找程序:

清单 5. 一个基于 Entity 名称搜索的简单查找程序

 static def findByName(name){ 
 def query = new Query(Race.class.simpleName) 
 query.addFilter("name", Query.FilterOperator.EQUAL, name) 
 def preparedQuery = this.datastore.prepare(query) 
 if(preparedQuery.countEntities() > 1){ 
 return new Race(preparedQuery.asList(withLimit(1))[0]) 
 }else{ 
 return new Race(preparedQuery.asSingleEntity()) 
 } 
 } 

这个简单的查找程序使用 Google App Engine 的 Query和 PreparedQuery类型来查找一个类型为 “Race” 的实体,其名称(完全)等同于传入的名称。如果有超过一个 Race符合这个标准,查找程序将返回一个列表的第一项,这是分页限制 1(withLimit(1))所指定的。

上一页  2 3 4 5 6 7 8 9 10  下一页

Tags:Java 开发 NoSQL

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接