Java Android中的Parse.com一对多关系

Java Android中的Parse.com一对多关系,java,android,database,parse-platform,relational-database,Java,Android,Database,Parse Platform,Relational Database,我对android的一对多关系的实现有问题。我试图用指针保存类别和问题之间的关系。我可以获取指针(IDs of Question),但我不知道如何获取它们所指向的数据。是否有任何方法获取它们,或者我必须调用QueryonQuestions类(使用我从Cathegory类中获取的问题的ID) 保存关系的我的代码: Question q1 = new Question("How much money cost new Skoda Fabia?", "300 " +

我对android的一对多关系的实现有问题。我试图用指针保存类别和问题之间的关系。我可以获取指针(IDs of Question),但我不知道如何获取它们所指向的数据。是否有任何方法获取它们,或者我必须调用QueryonQuestions类(使用我从Cathegory类中获取的问题的ID

保存关系的我的代码:

            Question q1 = new Question("How much money cost new Skoda Fabia?", "300 " +
                    "000kc", "200 000kc", "100 000kc", "50 000kc");
            q1.saveInBackground();
            Question q2 = new Question("How much money cost new Skoda Felicia?", "300 " +
                    "000kc", "200 000kc", "100 000kc", "150 000kc");
            q2.saveInBackground();
            Question q3 = new Question("How much money cost new Skoda Octavia?", "500 " +
                    "000kc", "150 000kc", "100 000kc", "50 000kc");
            q3.saveInBackground();

            ArrayList<Question> questionArrayList = new ArrayList<>();
            questionArrayList.add(q1);
            questionArrayList.add(q2);
            questionArrayList.add(q3);

            ParseObject parseObject = new ParseObject("Cathegory");
            parseObject.put("Auto", questionArrayList);
            parseObject.saveInBackground(new SaveCallback() {
                @Override
                public void done(ParseException e) {
                    Log.d(TAG, "Save was sucesfully");
                    Log.d(TAG, "error was ? : " + (e == null ? "none" : e.getMessage()));
                }
            });
问题q1=新问题(“新斯柯达Fabia花多少钱?”,“300”+
“000kc”、“20000KC”、“100000 KC”、“50000 KC”);
q1.savinbackground();
问题q2=新问题(“新斯柯达Felicia花了多少钱?”,“300”+
“000kc”、“20000KC”、“100000 KC”、“150000KC”);
q2.保存背景();
问题q3=新问题(“新斯柯达奥克塔维亚多少钱?”,“500”+
“000kc”、“150000KC”、“100000 KC”、“50000 KC”);
q3.saveInBackground();
ArrayList questionArrayList=新的ArrayList();
添加问题列表(q1);
添加问题列表(q2);
添加问题列表(q3);
ParseObject ParseObject=新的ParseObject(“Cathegory”);
parseObject.put(“自动”,questionArrayList);
saveInBackground(新的SaveCallback(){
@凌驾
公共作废完成(Parsee异常){
Log.d(标记“Save was successfully”);
Log.d(标记“error was:”+(e==null?“none”:e.getMessage());
}
});
调用此函数后,我在Parse.com中获得此模型:

类别类别

问题类

到目前为止,我编写了检索数据的代码:

   ParseQuery<ParseObject> parseQuery = ParseQuery.getQuery("Cathegory");
            parseQuery.getFirstInBackground(new GetCallback<ParseObject>() {
                @Override
                public void done(ParseObject parseObject, ParseException e) {
                    List<Question> questionList = parseObject.getList("Auto");
                    //I have IDs of Question in questionList
                    for(Question q : questionList){
                        q.fetchIfNeededInBackground(new GetCallback<ParseObject>() {
                            @Override
                            public void done(ParseObject parseObject, ParseException e) {
                                //Still not have all information about Question (just ID)
                                Log.d(TAG,"Data parseObject retrieved");
                            }
                        });
                    }
                    Log.d(TAG,"Data retrieved");
                }
            });
ParseQuery ParseQuery=ParseQuery.getQuery(“Cathegory”);
getFirstInBackground(新的GetCallback(){
@凌驾
公共void完成(ParseObject ParseObject,parsee异常){
List questionList=parseObject.getList(“自动”);
//我在问题列表中有问题的ID
对于(问题q:问题列表){
q、 fetchIfNeededInBackground(新的GetCallback(){
@凌驾
公共void完成(ParseObject ParseObject,parsee异常){
//仍然没有关于问题的所有信息(仅ID)
Log.d(标记“检索到的数据对象”);
}
});
}
Log.d(标记“检索到的数据”);
}
});

我解决这个问题的方法不是使用列表,而是只使用简单的指针,从问题指向类别(上面是相反的)

然后我简单地创建一个类别

 Category sports = new Category("Sports");
 ...
 sports.save();
然后我使用这个类别作为问题函数中的参数

 setCategory(Category cat){
      put("IdCategory",cat);
 }
我不知道如何在Android中使用它,但我使用的是云代码(JavaScript),看起来是这样的:

 queryOnQuestion.equalTo("IdCategory", {
                                __type: "Pointer",
                                className: "Category",
                                objectId: allowedCat.get("IdCategory").id
                                });
我希望Android看起来也一样。在最坏的情况下,您可以使用这部分代码定义云函数

希望能帮助别人