좋습니다. 이렇게하려면 커서를 클라이언트에 문자열로 저장하는 것이 가장 좋습니다.
이렇게하려면 결과 목록과 커서 문자열을 저장할 수있는 RequestFactory를 통해 클라이언트에 전달할 수 있도록 전송할 수있는 래퍼 클래스를 만들어야합니다. 이것을하기 위해서 당신은 보통의 POJO를 생성 한 다음 그것을위한 프록시를 생성합니다. 프록시에 대한
public class OrganizationResultsWrapper {
public List<Organization> list;
public String webSafeCursorString;
public List<Organization> getList() {
return list;
}
public void setList(List<Organization> list) {
this.list = list;
}
public String getWebSafeCursorString() {
return this.webSafeCursorString;
}
public void setWebSafeCursorString(String webSafeCursorString) {
this.webSafeCursorString = webSafeCursorString;
}
}
: 여기
코드가 POJO에 대한 생겼는지
는 POJO 각각 프록시
// service class method
@ServiceMethod
public OrganizationResultsWrapper getOrganizations(String webSafeCursorString) {
return dao.getOrganizations(webSafeCursorString);
}
// request factory method
Request<OrganizationResultsWrapperProxy> getOrganizations(String webSafeCursorString);
를 사용하도록 서비스 및 requestFactory를 설정
@ProxyFor(OrganizationResultsWrapper.class)
public interface OrganizationResultsWrapperProxy extends ValueProxy{
List<OrganizationProxy> getList();
void setList(List<OrganizationProxy> list);
String getWebSafeCursorString();
void setWebSafeCursorString(String webSafeCursorString);
}
그런 다음 유효성 검사 프로세스가 실행되도록 RPC 마법사를 실행하고 실행하십시오. 요 서버에서 요청 컨텍스트 오류가 발생합니다.
여기 내 데이터 액세스 클래스의 구현입니다 :
public OrganizationResultsWrapper getOrganizations(String webSafeCursorString) {
List<Organization> list = new ArrayList<Organization>();
OrganizationResultsWrapper resultsWrapper = new OrganizationResultsWrapper();
Query<Organization> query = ofy().load().type(Organization.class).limit(50);
if (webSafeCursorString != null) {
query = query.startAt(Cursor.fromWebSafeString(webSafeCursorString));
}
QueryResultIterator<Organization> iterator = query.iterator();
while (iterator.hasNext()) {
list.add(iterator.next());
}
resultsWrapper.setList(list);
resultsWrapper.setWebSafeCursorString(iterator.getCursor().toWebSafeString());
return resultsWrapper;
}