アプリのエンジンの共同開発者管理なオペレーターまたは
-
06-09-2019 - |
質問
うことによりクエリーの共同開発者管理のためのようなもの(pm-->persistanceManager):
String filters = "( field == 'value' || field == 'anotherValue' )";
Query query = pm.newQuery(myType.class, filters);
私は実感しくは: アプリのエンジンの共同開発者管理なオペレーターまたは.
どのアプローチは、人々の経験のためにこのようなクエリー?
のお役に立てるようお願いいたします。
解決
を行う複数のクエリ.のDatastoreのように、他のすべてのデータベースなので効率的に行disjunctions.とは異なり、他のデータベースで公開すが、ユーザーに何をやっているんです。お唯一のソリューションを執行する複数のクエリをひとつひとつにつ又は組み合わせたり
他のヒント
わからない場合GAEのJDO、JPAを実装を支援すが、低レベルのAPIを使用でき、オペレーターこの一つのモードです。
Query query = new Query("Issue");
List<String> list = Arrays.asList("NEW", "OPEN", "ACCEPTED");
query.addFilter("status", FilterOperator.IN, list);
DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
PreparedQuery preparedQuery = datastore.prepare(query);
for (Entity entity : preparedQuery.asIterable()) {
// should iterate over 'NEW', 'OPEN' and 'ACCEPTED' issues
}
による Google App Engine-お問い合わせの指標:
クエリフィル
A フィルター 指定のフィールド名 オペレーターとなります。の価値 によって提供されなければならなのアプリできません を参照して他の財産又は の算定はその他の ます。のオペレーターでのいずれかが表示されます 以下の
< <= == >= >
注意: Java datastoreインをサポートしない!= や フィルター 事業者が実施して Python datastoreインターフェース。( Pythonインタフェース、これらの事業者 実装のクライアント側の 図書館として複数のdatastore クエリー;な特徴の datastoreます。)
対象のフィルターすることはでき オブジェクト分野の主な キーにエンティティグループの親会参照 取引).
企業一致しなければなすべてのフィルタする ます。のJDOQL文字列の書式 複数のフィルタを指定され 分離
&&
(論理"、").その他論理的に組み合わせィ (論理"または","せ"といいます) サポート。により、アプリのエンジン datastoreクエリを実行し、シングル クエリが利用できない格差ィ (
< <= >= >
)以上 物件です。複数の不平等ィ 同じ物件などを問い合わせ のために値の範囲)許可されています。見 制約問合せ.
基本的にいかに再構築するデータをできるように探しているための一つの条件または複数の"および"条件においてを取得するデータはお問い合わせのフィルタの組合わせコードで.
申し訳ないのゲーム..うたおうかがいます。
別の言い方には"シミュレート"'に'および'または'挙動は、"低レベルの"Datastore APIに含まれています。のDatastoreServiceポンをget()メソッドを受け入れる蔵のキーにマップを返しま全体のアーケード続きのため、渡された鍵となります。このインターフェースが手軽なDatastoreServiceFactoryご要望に分注意-利用インスタンス.
残念ながら、Googleたないことを促進したいと考えているこの低レベルAPIアプローチは、希望する者の利用JDOはJPAなドキュメント以外のJavaDocsどんなコードサンプルを感じるかもしれませんがきGoogle"DatastoreService".
TL
Late breakingニュース..少なくともいくのです。ていたのでダウンロードは最新のJavaするために使用されていますGAEんのリリースノート"の問題29:く一括取得した固定に最新のリリース(v1.2.1)です。基本的にしているそうでんのことのようでとなっている場合があり、JDOに基づく代替というよりもむしろ低下に"低レベルの"Datastore APIに含まれています。いただきました、ダウンロードし、最新のJava GAE SDKでなかなかない機会で試験し、そ<url> <url> <url> <url> <url> <url> <url> <url> <url> <url>ヘッドアップ。私はポストものである、ということを私の名前は載っていませんでした後、私たちはこの"修正".
ご私のおばん壊れたStackOverflowのマナーによる再投稿が私のコメントとしての答えだというテーマで進めていきましたので。まずないでなので対応るとともに、同誌掲載号の注目もまぁこの新しい情報が提供する完全に異なる"答え"の問題です。次に、関係者のコメントフォームに手に入らないかも知れないのでご注意をする前に思い過ごした時間の最初の答えた。
次回は、私の考えを慎重に考えて行動します。
TL
片道の簡素化を"do it yourself"が利用パラメータ化された質問:
Query query = pm.newQuery(mytype.class);
query.setFilter("field == autoParam");
query.declareParameters("String autoParam");
List<String> params = myListOfThingsFieldCanBeEqualTo;
Set merged = new HashSet();
for (String f : params) {
merged.addAll(q.execute(f));
}
反cletus'答え または-ingの作品, で、最近のバージョンのアプリにエンジン。
実際、私が見つからないか、グループにおいて入手できないアプリのエンジン1.3.0していたが、それによる Google App Engine-お問い合わせの指標 (同じソースcletus言え),
企業一致しなければな全てのフれます。のJDOQL文字列構文は、別の複数ィルター||(論理"または")および&&(論理"、")は、こ||で採用さィルタで分離すべての分野名です。つまり、||は法的な場合にフィルでは分離できる分contains()選定する事が出来ます。
きっかけになるかもしれないとその回答やかに変更したアプリは、エンジンのアプリングレードアップしてまいります。
更新アプリのエンジン1.3.4、またはグループを作ります!! ものの制限があります。
コcletusう:)
利用できる、を含む方法
String filters = "( :values.contains(field) )";
Query query = pm.newQuery(myType.class, filters);