一つ次のように簡単に複数のパラメータに照会するJDO構文を使用することができます。動的に複数のパラメータにJDOのクエリを構築する方法
"customer == paramCustomer && date >= paramStartDate && date <=paramEndDate"
:
//specify the persistent entity you're querying and you filter usign params
query = pm.newQuery(MyClass.class, " customer == paramCustomer && date >= paramStartDate && date <=paramEndDate ");
// declare params used above
query.declareParameters("com.google.appengine.api.users.User paramCustomer, java.util.Date paramStartDate, java.util.Date paramEndDate");
//pass the object declared as params
MyClassList = (List<MyClass>) query.execute(user, startDate, endDate);
これは、プログラムのフィルタ文字列を構築するために簡単です
と、もう1つはparams宣言を付けたものです。
"com.google.appengine.api.users.User paramCustomer, java.util.Date paramStartDate, java.util.Date paramEndDate"
何もありませんフィルタに含まれるパラメータ(宣言されている)に応じて、クエリを実行するための戦略を思いつくことになります。そのため、実際には醜く、アドホックなカスケードif-elseステートメントがクエリ実行の可能な順列(すべてのparams、最初、唯一の二、などの第一及び第二の...):
MyClassList = (List<MyClass>) query.execute(user, startDate, endDate);
私は、これは一般的な作業であり、他の誰かがそれをやっていると確信していますより一般的で効率的な方法です。
提案がありますか?
同じ問題を抱えてコードサンプルを表示してください。 –