用Java实现googleappengine中的分页
我需要创建对象的简单分页,但当我阅读手册时,我发现query.setRange(5,10);将获取10个对象,即使只需要5个对象 是否仍有获取所需对象的方法用Java实现googleappengine中的分页,java,google-app-engine,Java,Google App Engine,我需要创建对象的简单分页,但当我阅读手册时,我发现query.setRange(5,10);将获取10个对象,即使只需要5个对象 是否仍有获取所需对象的方法 编辑:我启动了bounty,所以你可以给我看一些简单的Java示例代码,然后我接受你的回答。如果你想进行分页,你可能想研究使用而不是设置范围。App Engine网站上有一篇关于这个主题的文章: 这些示例是用Python编写的,但它们非常简单,您可以相当轻松地将其转换为Java ,我没有读过或测试过。如果从数据库返回10个对象,为什么会出
编辑:我启动了bounty,所以你可以给我看一些简单的Java示例代码,然后我接受你的回答。如果你想进行分页,你可能想研究使用而不是设置范围。App Engine网站上有一篇关于这个主题的文章: 这些示例是用Python编写的,但它们非常简单,您可以相当轻松地将其转换为Java
,我没有读过或测试过。如果从数据库返回10个对象,为什么会出现问题?您仍然会返回您关心的5个对象(前5个被丢弃) 我不是问这个问题,因为我认为setRange方法是一个伸缩性非常好的解决方案,但它是一个简单合理的解决方案,在很多情况下都是足够的 您是否计划分页非常大的表或合并昂贵的联接?如果没有,我会尝试使用setRange作为分页的起点。这样如何:
List<Employee> results = (List<Employee>) query.execute();
// Use the first 20 results...
Cursor cursor = JPACursorHelper.getCursor(results);
String cursorString = cursor.toWebSafeString();
// Store the cursorString...
// ...
// Query query = the same query that produced the cursor
// String cursorString = the string from storage
Cursor cursor = Cursor.fromWebSafeString(cursorString);
query.setHint(JPACursorHelper.CURSOR_HINT, cursor);
query.setRange(0, 20);
List<Employee> results = (List<Employee>) query.execute();
// Use the next 20 results...
List results=(List)query.execute();
//使用前20个结果。。。
cursorcursor=JPACursorHelper.getCursor(结果);
字符串cursorString=cursor.towerbsafesting();
//存储游标字符串。。。
// ...
//Query Query=生成光标的同一查询
//String cursorString=存储器中的字符串
Cursor Cursor=Cursor.fromWebSafeString(cursorString);
setHint(JPACursorHelper.CURSOR\u HINT,CURSOR);
query.setRange(0,20);
List results=(List)query.execute();
//使用接下来的20个结果。。。
发件人:
此外:
或没有JPA,见: