GAE более 3 атрибутов для фильтрации? - PullRequest
1 голос
/ 15 января 2011

Hie

Я использую GAE jdoql и написал запрос как:

    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());

Это не работает, так как метод execute не поддерживает более 3 параметров. Так как проехать более 3

Ответы [ 2 ]

1 голос
/ 15 января 2011

Согласно документации вы можете добавить несколько фильтров, вызывая метод addFilter несколько раз:

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
}
0 голосов
/ 15 января 2011

ок, понял, сам.Правильный метод - использовать query.executeWithArray в этом случае

...