Google app engine 目标化退货清单&;光标
我试图使用Objectify和googleappengine的游标来返回数据子集和游标,以便在用户准备好时检索更多数据。我找到了一个与我需要的完全相同的示例,但我不知道如何返回最终列表和光标。以下是我的代码:Google app engine 目标化退货清单&;光标,google-app-engine,google-cloud-endpoints,objectify,Google App Engine,Google Cloud Endpoints,Objectify,我试图使用Objectify和googleappengine的游标来返回数据子集和游标,以便在用户准备好时检索更多数据。我找到了一个与我需要的完全相同的示例,但我不知道如何返回最终列表和光标。以下是我的代码: @ApiMethod(name = "listIconThemeCursor") //https://code.google.com/p/objectify-appengine/wiki/Queries#Cursors public CollectionResponse<IconTh
@ApiMethod(name = "listIconThemeCursor") //https://code.google.com/p/objectify-appengine/wiki/Queries#Cursors
public CollectionResponse<IconTheme> listIconThemeCursor(@Named("cursor") String cursorStr) {
Query<IconTheme> query = ofy().load().type(IconTheme.class).limit(10);
if (cursorStr != null ) {
query.startAt(Cursor.fromWebSafeString(cursorStr));
}
List<IconTheme> result = new ArrayList<IconTheme>();
int count = 0;
QueryResultIterator<IconTheme> iterator = query.iterator();
while (iterator.hasNext()) {
IconTheme theme = iterator.next();
result.add(theme);
count++;
}
Cursor cursor = iterator.getCursor();
String encodeCursor = cursor.toWebSafeString();
return serial(tClass, result, encodeCursor);
}
@ApiMethod(name=“listIconThemeCursor”)//https://code.google.com/p/objectify-appengine/wiki/Queries#Cursors
public CollectionResponse listIconThemeCursor(@Named(“cursor”)字符串cursorStr){
Query Query=ofy().load().type(IconTheme.class).limit(10);
if(cursorStr!=null){
query.startAt(Cursor.fromWebSafeString(cursorStr));
}
列表结果=新建ArrayList();
整数计数=0;
QueryResulterator迭代器=query.iterator();
while(iterator.hasNext()){
IconTheme主题=迭代器.next();
结果.添加(主题);
计数++;
}
Cursor Cursor=iterator.getCursor();
字符串encodeCursor=cursor.towerbsafesting();
返回序列号(tClass、result、encodeCursor);
}
请注意,这是从以前的端点修改的,在该端点中,我返回了所有数据的CollectionResponse。我的数据集足够大,因此不再实用。基本上,我不知道用户的“serial”(tClass、result、encodeCursor)函数中有什么让它返回给用户
还有另一个例子,但它似乎也不能回答我的问题。我不太明白你在问什么,但我看到你的代码中有一个直接的错误:
query.startAt(Cursor.fromWebSafeString(cursorStr));
……应该是:
query = query.startAt(Cursor.fromWebSafeString(cursorStr));
Objectify命令对象是不可变的功能对象。经过长时间的努力,我发现CollectionResponse中有光标:( 下面是我使用的完整代码,其中包含了上面stickfigure的注释:
@ApiMethod(name = "listIconThemeCursor", path="get_cursor")
public CollectionResponse<IconTheme> listIconThemeCursor(@Named("cursor") String cursorStr) {
Query<IconTheme> query = ofy().load().type(IconTheme.class)
.filter("errors <", 10)
.limit(10);
if (cursorStr != null ) {
query = query.startAt(Cursor.fromWebSafeString(cursorStr));
}
List<IconTheme> result = new ArrayList<IconTheme>();
QueryResultIterator<IconTheme> iterator = query.iterator();
while (iterator.hasNext()) {
IconTheme theme = iterator.next();
result.add(theme);
}
Cursor cursor = iterator.getCursor();
CollectionResponse<IconTheme> response = CollectionResponse.<IconTheme> builder()
.setItems(result)
.setNextPageToken(cursor.toWebSafeString())
.build();
return response;
}
ApiMethod(name=“listIconThemeCursor”,path=“get\u cursor”)
public CollectionResponse listIconThemeCursor(@Named(“cursor”)字符串cursorStr){
Query Query=ofy().load().type(IconTheme.class)
.filter(“错误”很好地捕捉到了这一点(我确信以后它会杀了我)。但基本上,我不知道返回序列是什么(tClass、result、encodeCursor)是。我只知道如何返回CollectionResponse,而不知道如何返回ArrayList+光标。这是一个为熟悉Google端点的人准备的问题。我建议你用Google端点标记这个问题,以获得正确的关注。谢谢,这救了我的命!非常感谢。找不到CollectionResponse Javadocs,所以这是非常有帮助。cursorStr是否也应该是
@Nullable
?我想它可以@willma,但如果没有它,它会运行得很好。