Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Java实现googleappengine中的分页_Java_Google App Engine - Fatal编程技术网

用Java实现googleappengine中的分页

用Java实现googleappengine中的分页,java,google-app-engine,Java,Google App Engine,我需要创建对象的简单分页,但当我阅读手册时,我发现query.setRange(5,10);将获取10个对象,即使只需要5个对象 是否仍有获取所需对象的方法 编辑:我启动了bounty,所以你可以给我看一些简单的Java示例代码,然后我接受你的回答。如果你想进行分页,你可能想研究使用而不是设置范围。App Engine网站上有一篇关于这个主题的文章: 这些示例是用Python编写的,但它们非常简单,您可以相当轻松地将其转换为Java ,我没有读过或测试过。如果从数据库返回10个对象,为什么会出

我需要创建对象的简单分页,但当我阅读手册时,我发现query.setRange(5,10);将获取10个对象,即使只需要5个对象

是否仍有获取所需对象的方法


编辑:我启动了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,见: