Reputation: 121
i have used ParseQuery mainQuery = ParseQuery.or(queries); but it is getting crash as Cannot have an order in sub queries of an 'OR' query
Upvotes: 1
Views: 211
Reputation: 121
ParseQuery<ParseObject> vid_name_q = ParseQuery.getQuery(ErosConstant.TABLE_CAT_VID);
vid_name_q.whereContains(ErosConstant.COL_VIDEO_NAME, search_val);
vid_name_q.orderByDescending(ErosConstant.Col_USED_COUNTER);
if(prod_arr_list.size() > 0)
vid_name_q.whereContainedIn("prod_id", prod_arr_list);
ParseQuery<ParseObject> actor_name_q = ParseQuery.getQuery(ErosConstant.TABLE_CAT_VID);
actor_name_q.whereContains(ErosConstant.COL_ACTOR_NAME, search_val);
actor_name_q.orderByDescending(ErosConstant.Col_USED_COUNTER);
if(prod_arr_list.size() > 0)
actor_name_q.whereContainedIn("prod_id", prod_arr_list);
ParseQuery<ParseObject> muv_tv_show_q = ParseQuery.getQuery(ErosConstant.TABLE_CAT_VID);
muv_tv_show_q.whereContains(ErosConstant.COL_MUV_TV_SHOW_NAME, search_val);
muv_tv_show_q.orderByDescending(ErosConstant.Col_USED_COUNTER);
if(prod_arr_list.size() > 0)
muv_tv_show_q.whereContainedIn("prod_id", prod_arr_list);
// add this all query in list:
List<ParseQuery<ParseObject>> queries = new ArrayList<ParseQuery<ParseObject>>();
queries.add(vid_name_q);
queries.add(actor_name_q);
queries.add(muv_tv_show_q);
// get result which is as "OR"
ParseQuery<ParseObject> mainQuery = ParseQuery.or(queries);
This is my query which crashes at ParseQuery.or(queries)
and is saying
Cannot have an order in sub queries of an 'OR' query
Upvotes: 0
Reputation: 712
i have worked fine this way .
ParseQuery<ParseObject> namelower = new ParseQuery<ParseObject>(
"vendorstore");
namelower.whereContains(superMarket.key_bizname, strEdit);
ParseQuery<ParseObject> catPrimary = new ParseQuery<ParseObject>(
"vendorstore");
catPrimary.whereContains(superMarket.key_catprimary, strEdit);
ParseQuery<ParseObject> City = new ParseQuery<ParseObject>(
"vendorstore");
City.whereContains(superMarket.key_city, strEdit);
ParseQuery<ParseObject> State = new ParseQuery<ParseObject>(
"vendorstore");
State.whereContains(superMarket.key_state, strEdit);
ParseQuery<ParseObject> Country = new ParseQuery<ParseObject>(
"vendorstore");
Country.whereContains(superMarket.key_country, strEdit);
ParseQuery<ParseObject> catSub = new ParseQuery<ParseObject>(
"vendorstore");
catSub.whereContains(superMarket.key_cat_sub, strEdit);
ParseQuery<ParseObject> zipcode = new ParseQuery<ParseObject>(
"vendorstore");
zipcode.whereContains(superMarket.key_zipcode, strEdit);
List<ParseQuery<ParseObject>> addQuery = new ArrayList<ParseQuery<ParseObject>>();
addQuery.add(namelower);
addQuery.add(catPrimary);
addQuery.add(City);
addQuery.add(State);
addQuery.add(Country);
addQuery.add(zipcode);
addQuery.add(catSub);
ParseQuery<ParseObject> mainQuery = ParseQuery.or(addQuery);
mainQuery.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> list, ParseException e) {
// TODO Auto-generated method stub
CommanClass.Pdialog_dismiss();
if (e == null) {
if (list.size() > 0) {
Log.e("Parse Object", "LL " + list.size());
} else {
Log.e(key_TAG, "Not Found Record");
}
} else {
}
}
});
Upvotes: 0
Reputation: 1077
Please post your queries which are you passing in mainQuery = ParseQuery.or(queries);
Generally or query called like this :
ParseQuery<ParseObject> query1=ParseQuery.getQuery("comments");
//Some conditions on query1
ParseQuery<ParseObject> query2=ParseQuery.getQuery("comments");
// Some conditions on query2
List<ParseQuery<ParseObject>> listQuery=Arrays.asList(query1,query2);
ParseQuery<ParseObject> query=ParseQuery.or(listQuery);
// General condition for both queries also set order here.
Upvotes: 0
Reputation: 328
Can you please put your code here or the log details ... \ this is the common process to query the data from parse.. follow the parse docs how to fetch the data
try {
ParseQuery<ParseObject> query = ParseQuery.getQuery("ClassName");
query.orderByDescending("Column Name");
query.whereEqualTo(condition);
ob = query.find();
Upvotes: 1