Fab*_* B. 9 google-app-engine pagination cursor objectify
我的RPC服务中有这个方法:
@Override
public Entrata[] getEntrate(int from, int to) {
List<Entrata> data = entrateDao.list();
return data.toArray(new Entrata[0]);
}
Run Code Online (Sandbox Code Playgroud)
如您所见,我没有使用这两个参数,在SQL世界中,我将使用LIMIT和OFFSET.
现在还不完全清楚我现在要做什么,我开始阅读这篇文章:http: //code.google.com/p/objectify-appengine/wiki/IntroductionToObjectify#Cursors
我想我必须做一个query.startCursor()
然后迭代"TO"次,页面大小.
行?你可以帮我一些片段吗?:)
Igo*_*nov 15
从文档中:游标允许您在查询结果集中使用"检查点",将检查点存储在其他位置,然后从您上次停止的位置继续
当你只需要限制/偏移,你必须使用limit()
和offset()
物化查询的方法.喜欢:
ob.query(Entrata.class).limit(to - from).offset(from)
Run Code Online (Sandbox Code Playgroud)
或者,当你有光标时:
String cursor = // get it from request
Query<Entrata> query = ob.query(Entrata.class);
Query q = query.startCursor(Cursor.fromWebSafeString(cursor));
q.limit(x);
QueryResultIterator<Entrate> iterator = query.iterator()
List<Entrate> data = // fetch data
String newCursor = iterrator.getStartCursor().toWebSafeString()
return new EntrataListWithCursor(data, cursor);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5523 次 |
最近记录: |