プロフィール

島田圭二

Author:島田圭二
Follow shimanp on Twitter

カレンダー
10 | 2017/11 | 12
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 - -
読断と変見内検索
訪問ありがとうございます
最近のコメント
最近のトラックバック
関連リンク
カテゴリー
月別アーカイブ


スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


スポンサー広告 | 【--------(--) --:--:--】 | Trackback(-) | Comments(-)
GAEでカーソルを使用する - Java
最近google app engineを使用した仕事をしてる。
そこでカーソルを使うことがあったのでメモ。

Low Level APIを使用したときのカーソル


とりあえずソース。
DatastoreService service = DatastoreServiceFactory.getDatastoreService();
Query query = new Query("Hoge");
PreparedQuery pq = service.prepare(query);
FetchOptions fo = FetchOptions.Builder.withOffset(0).limit(2);
//データを取得。0番目から2つデータが取得
QueryResultList qr = pq.asQueryResultList(fo);
//カーソルの取得
Cursor c = qr.getCursor();
//取得したカーソルを指定
fo = FetchOptions.Builder.withLimit(2).cursor(c);
//データを取得。3番目から2つのデータが取得
qr = pq.asQueryResultList(fo);

カーソルを一度文字列として保存しておくには
//カーソルを取得
Cursor c = qr.getCursor();
//カーソルをBase64エンコードした文字列を取得。これを文字列をどこかに保存しておく。
String cur = c.toWebSafeString();
//カーソルを復元するには
c = Cursor.fromWebSafeString(cur);


slim3を使用したとき


ソース
HogeMeta meta = HogeMeta.get();
S3QueryResultList resList =
Datastore.query(meta)
.filter(meta.foo.equal("foo"))
.limit(2)
.asQueryResultList();
//カーソル情報を取得
cursor = resList.getEncodedCursor();
//検索時の条件を取得
filter = resList.getEncodedFilters();
//検索時のソート条件を取得
sort = resList.getEncodedSorts();
//まだデータが存在するか?
if (resList.hasNext()) {
S3QueryResultList resList2=
Datastore.query(meta)
.encodedCursor(cursor)
.encodedFilters(filter)
.encodedSorts(sort)
.limit(2).asQueryResultList();
}

slim3の例だとlimitが書かれていなくて、ちょっとはまった。
limitを指定しないと以下のようなエラーが発生する。
java.lang.IllegalArgumentException: fromIndex(2) > toIndex(-2147483647)

カーソルの制限


slim3のページにも書いてあるけど、IN や != が使用できないので、
notEqualとか使うとnullが返ってくる。
また、検索条件や、ソート条件も一致していないとダメなので、
low level apiよりslim3を使用した方が確実かも。



スポンサーサイト


gae | 【2010-05-22(Sat) 20:57:22】 | Trackback:(1) | Comments:(0)
コメントの投稿
管理者にだけ表示を許可する

ミス立教にも選ばれた日テレ・豊田順子アナが話題に 『ミヤネ屋』などでお馴染みの日本テレビ・豊田順子アナウンサー。 報道の際での冷静な対応も高評価を得ているようだ。 最近では、熟女ファンから...
【2011-03-26 Sat 16:07:47】 | ミス立教にも選ばれた日テレ・豊田順子アナが話題に
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。