2010年3月3日水曜日

GAEデータストアで条件検索(JDO利用)

以下のサンプルは、データストアにあるUserテーブルのunivIDプロパティが"1234567"という文字列であるデータを検索する例です。下記のサンプル内で一部全角の「<>」を用いてますが、半角に直して下さい。


JDOQLのフル記述の場合
//JDOのマネージャーのインスタンス呼び出し
        PersistenceManager pm = PMF.get().getPersistenceManager();
        String query ="select from org.ochilab.server.user.User where univID=='1234567'";
        List<org.ochilab.server.user.user>result=(List<org.ochilab.server.user.user>pm.newQuery(query).execute();

JDOQLのところは以下のように書くことも可能です。
パラメータ変数で記述する場合
Query query = pm.newQuery(User.class,"univID == univIDParam");
        query.declareParameters("String univIDParam");
        List<org.ochilab.server.user.user>result= (List<org.ochilab.server.user.user>query.execute("1234567");

個人的には後者がよいかと思われます。なお、条件の指定には、下記の方法でもOKです。
Query query = pm.newQuery(Users.class);
     query.setFilter("univID == univIDParam");
     query.declareParameters("String univIDParam");

条件を複数にする場合は、上記、setFilter()の条件を&&で結び、declareParameters()ならびに、query.execute()の各引数を複数にすればOKらしいです。

0 件のコメント:

コメントを投稿