2011-01-15 4 views
1

HieGAE mehr als 3 Attribute zu filtern?

Ich bin mit GAE JDOQL und schrieb Abfrage wie:

Query query = pm.newQuery(BloodDonor.class); 
     query.setFilter(" state == :stateName && district == :distName &&" + 
       " city == :cityName && bloodGroup == :blood"); 
     @SuppressWarnings("unchecked") 
     List<BloodDonor> donors = (List<BloodDonor>) query.execute(state.toLowerCase(), district.toLowerCase(), 
       city.toLowerCase(), bloodGroup.toLowerCase()); 

Dies funktioniert nicht Methode als nicht ausgeführt mehr als 3 Parameter unterstützen. Wie also passieren mehr als 3

Antwort

0

ok unsere selbst dachte. Die richtige Methode ist die Verwendung von query.executeWithArray in diesem Fall

1

Nach the documentation können Sie mehrere Filter hinzufügen, indem Sie die addFilter Methode mehrfach aufrufen:

Query query = pm.newQuery("BloodDonor"); 
query.addFilter("state", Query.FilterOperator.EQUAL, state.toLowerCase()); 
query.addFilter("district", Query.FilterOperator.EQUAL, city.toLowerCase()); 
query.addFilter("bloodGroup", Query.FilterOperator.EQUAL, bloodGroup.toLowerCase()); 

PreparedQuery pq = datastore.prepare(q); 

for (Entity result : pq.asIterable()) { 
    // Do stuff 
} 
Verwandte Themen