Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to query value of column that is set as pointer to other table in Parse

I am using Parse for my app. I want to query a table with column that set to be a pointer to other table. Here is the query:

ParseQuery query = new ParseQuery("CategoryAttribute");
        query.whereEqualTo("categoryId", categoryId);
        query.findInBackground(new FindCallback() {
            @Override
            public void done(List<ParseObject> categoryAttributes, ParseException e) {
                if (e == null) {
                    for (int i = 0; i < categoryAttributes.size(); i++){
                        String atributeCategoryId = categoryAttributes.get(i).getString("categoryId");
                        String attributeKey  = categoryAttributes.get(i).getString("attributeKey");
                        String attributeValue   = categoryAttributes.get(i).getString("attributeValue");

                        setCategoryAtributeRow(atributeCategoryId, attributeKey, attributeValue);
                    }
                } else {
                    Log.d("score", "Error: " + e.getMessage());
                }
            }
        });

So the categoryId column is a pointer to other table. Other columns work fine. I tried to scan the API and the guides but couldn't find needed solution. Help would be much appreciated!

like image 966
vlio20 Avatar asked Mar 20 '13 07:03

vlio20


1 Answers

Here is the solution to this one:

First you need to create a ParseObject from the type of your table:

ParseObject sale = ParseObject.createParseObject("Sale"); 

Then you need to get the ParseObject from the result:

sale = result.getParseObject(pointer_field);

Now you can pull from sale any field that it has just as you would do it normally, for example:

sale.getString("some_field")

Note: When you are doing your query you must to include the pointer field if you want to be able to extract the data from it after the query will be returned. The result:

query.include("pointer_field")

Hope it helps

like image 153
vlio20 Avatar answered Sep 28 '22 05:09

vlio20