Parse.com查询指针值

时间:2014-09-13 23:30:29

标签: java android parse-platform

我在我的Android应用数据库中使用Parse.com

简而言之,我查询了A类,它有一个指向B类的字段。如果我查询A类并且包含B类,那么无论如何我可以使用查询过滤器和/或按B类中的字段排序?

我对sql样式db更熟悉,因为我的描述可能会很明显。在解析中,我有一张桌子,供受邀参加游戏的人使用#game; gameInvitees"使用一些元数据,例如邀请他们和他们的rsvp状态。然后是一个单独的表格与游戏" gameInstances"。 " gameInvitees"包括一个指向他们被邀请的游戏的指针和被邀请的解析用户。

我的问题是我试图查询" gameInvitees"表格,以便我可以根据游戏时间找到当前被邀请参加游戏的用户,这是在游戏实例"表

我当前的代码看起来像这样:

    Calendar cal = Calendar.getInstance();
    cal.setTime(new Date());
    cal.add(Calendar.HOUR, -1);
    final Date oneHourBack = cal.getTime();


    // get games that the current user is invited to
    ParseQuery<GamePhaseInvitees> inviteeQuery = ParseQuery.getQuery("gameInvitees");
    inviteeQuery.whereEqualTo("inviteeAccount", ParseUser.getCurrentUser());  // current user is invited
    inviteeQuery.include("GameInstance");
    //    inviteeQuery.whereGreaterThanOrEqualTo("GameInstance.GameTime", oneHourBack);  // game is one hour back (but, this doesn't work)


    inviteeQuery.findInBackground(new FindCallback<GamePhaseInvitees>() {
        public void done(List<GamePhaseInvitees> gamesInvitedToList, ParseException e) {
            if (e == null) {

            } else {
            }

        }
    });

该代码有点简化以解释问题。基本上我需要弄清楚我可以用注释掉的行来查询由指针连接的字段。那可能吗?有没有干净的解决方案呢?

2 个答案:

答案 0 :(得分:1)

这是一个可能的解决方案:

根据表格类型创建ParseObject:ParseObject time = new ParseObject("Date"); 然后从结果中获取ParseObject:time = result.getParseObject(pointer_field);

现在,您可以从time拉出正常情况下的任何字段,例如:time.getString("some_field")

您可能还需要包含:query.include("pointer_field")

答案 1 :(得分:0)

根据Parse社区的说法:

而不是whereKey:中的点表示法,你可以使用whereKey:matchesKey:inQuery:或whereKey:matchesQuery:。