2011年10月26日

[Android] JDOでのCRUDでハマった

GAEでDatastoreに対して、以下の4つの操作ができます。

C(Create = 新規作成)
R(Read = 読み取り)
U(Update = 更新)
D(Delete = 削除)

その中で、ハマったところがあるので備忘メモ。

メールアドレス(String型)を条件にして検索したかったのですが、
なぜか条件が反映されずに全件検索の結果が返ってきていました。

参考書も参考サイトも(1)のような書き方をしているのにどうしてもうまくいかない。
(2)のように書き直したらうまくいきました。

数値の比較だったら、(1)でもうまくいくのに。
なんでだろう……。
----------------------------------------------------
(1)
pmquery.setFilter("email == pEmail");
pmquery.declareParameters("String pEMail");
      ↓
(2)
pmquery.setFilter("email == '" + pEmail + "'");
----------------------------------------------------

もう1つハマったところ。
検索条件を複数使えるのですが、setFilter()の使い方を間違えてました↓
----------------------------------------------------
【誤】
pmquery.setFilter(" email == pEmail");
pmquery.setFilter(" && id == pID");
【正】
pmquery.setFilter("email == pEmail && id == pID");

※【誤】は、1行目の命令を2行目のsetFilter()で条件を上書きしてました orz
----------------------------------------------------

【参考】
http://morado106.blog106.fc2.com/blog-entry-82.html
http://www.onaneet.org/practice/?p=58
タグ:android GAE JDO CRUD
posted by be-style at 19:38| Comment(0) | Android
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]