表2. play.db.jpa.JPASupport.JPAQuery API 说明
方法 | 说明 |
bind(name, param) | 用来绑定一个参数的实际值到查询上。在查询语句中可以使用形式参数作为占位符,参数的实际值可以通过此方法来指定。 |
fetch() | 用来获取此查询的所有记录。 |
fetch(max) | 用来获取此查询的前面 max 条记录。 |
fetch(page, length) | 用来对查询结果进行分页。参数 page 表示当前的页数,从 1 开始;length 表示每页的记录数。 |
first() | 用来返回查询结果中的第一条记录 |
from(position) | 用来设置查询结果中处理的起始位置。参数 position 表示起始位置的序号。该方法的返回结果是一个新的 play.db.jpa.JPASupport.JPAQuery 对象。 |
使用 表 2 中给出的方法,就可以在领域对象类中添加一些非常实用的方法,而不需要把这些方法添加到额外的服务层中。在示例应用中,Note 这个领域对象类表示的是用户添加的记录。代码清单 1 中给出了 Note 类中的一些实用方法。
清单 1. 领域对象类中的实用方法
// 创建新的领域对象 Note 的实例,edit() 方法的使用与 create() 类似
Map<String, String[]> params = new HashMap<String, String[]>();
params.put("note.title", new String[] {"My note"});
params.put("note.content", new String[] {"My note's content"});
Note.create(Note.class, "note", params).save();
// 使用 find() 来进行查找
List<Note> notes = Note.find("byTitle", "My note").fetch();
// 使用 findById() 来查找单个实例
Note note1 = Note.findById(1);
// 使用 delete() 来删除对象实例
Note.delete("byTitle", "My note");
// 返回查询结果中的第 2 到第 11 条记录。
Note.find("byTitle", "My note").from(1).fetch(10);
在介绍完 Play 框架的模型层之后,下面介绍控制层。