カーソル利用時のMemcache格納

カーソル取得のため、QueryResultListを利用している場合、
このクラスはSerializableを実装していないので、
Memcacheへそのまま格納できない。

なので、無理やりArrayListに変換に変換して対応した。
カーソルが取得できなくなるので、カーソルも別途格納。

// データベースからデータを取得
qrlst = service.prepare(qry).asQueryResultList(fetchOptions);

// ここまでの結果をカーソルにする
cursor = qrlst.getCursor();

// カーソルをBase64エンコード文字列に変換
page = cursor.toWebSafeString();

// QueryResultListからArrayListに変換
lst = new ArrayList<Entity>(qrlst);

// キャシュに保存
cache.put("Cursor:" + cacheKey, page);
cache.put("Page:" + cacheKey, lst);