Android Parse查询2个类

时间:2015-11-04 07:11:57

标签: java android parse-platform

所以我有两个班级:

Request class
| objectId | user | data | status |

User class
| objectId | fullName |

&#39;用户&#39; Request中的键是Relation<_User>类型,它是指向User类的指针。
我希望获得statusnew的所有请求,并且我也想获得用户的fullName

我想要的数据应该是这样的。

| objectId | user | data | status | fullName |

这是我根据Parse.com Android Guide

尝试过的
ParseQuery<ParseObject> query = ParseQuery.getQuery("Request");
query.include("user");
query.whereEqualTo("status", "new");

这将在请求中返回null,但是当我删除include方法时,它会显示该值但不包含fullName

有人可以帮忙吗?如果我的解释不清楚或者您需要更多信息,请发表评论。谢谢:))

修改
这是我在Request中插入新行的方法。

ParseObject post = new ParseObject("Request");
post.put("data", "data");
post.put("status", "new");
ParseUser user = ParseUser.getCurrentUser();
ParseRelation<ParseUser> relationRequest = post.getRelation("user");
relationRequest.add(user);

1 个答案:

答案 0 :(得分:1)

一种简单的方法是在user1类中创建包含Request objectId类的User列。

用于创建user1列使用

ParseUser currentUser=ParseUser.getCurrentUser();
ParseObject post = new ParseObject("Request");
post.put("data", "data");
post.put("status", "new");
post.put("user1", currentUser);
post.saveInBackground();

然后使用以下代码从User类中获取 fullName

 ParseQuery<ParseObject> getQuery = ParseQuery.getQuery("Request");
        getQuery.include("user1");
        getQuery.findInBackground(new FindCallback<ParseObject>() {
            public void done(List<ParseObject> scoreList, ParseException e) {
                if (e == null) {
                    if (scoreList != null && scoreList.size() > 0) {
                        ParseObject putData = scoreList.get(0);
                        String user1=putData.getParseObject("user1").getString("fullName");
                        String user2=putData.getString("user2");
                        Log.e("USer 1", ""+user1);
                        Log.e("USer 2", ""+user2);
                    }
                }

            }
        });

这对我有用。也可以帮到你。