0

Мне нужна помощь с запросами Parse. У меня есть три класса, которые имеют указатели в этом отношении. Класс активности со столбцом «видео», указывающий на класс Video, который имеет другой столбец «VideoOwner», указывающий на класс _User. Я хочу добиться запроса класса Activity для видео и получения связанных данных владельца из класса _User. Я пробовал этоМногомерные включают

ParseQuery<ParseObject> activityQuery = ParseQuery.getQuery("Activity"); 
    activityQuery.setLimit(1000); 
    activityQuery.whereEqualTo("video", ParseObject.createWithoutData("Video", objectID)); 
    activityQuery.whereEqualTo("type", "comment"); 
    activityQuery.whereExists("video"); 
    activityQuery.include("video"); 
    activityQuery.include("video.videoOwner"); 
    activityQuery.findInBackground(new FindCallback<ParseObject>() { 
     public void done(List<ParseObject> vList, ParseException e) { 
      if (e == null) { 

       for (int i = 0; i != vList.size(); i++) { 
        commenterUsername = vList.get(i).getParseObject("video.videoOwner").getString("username"); 
        commenterName = vList.get(i).getParseObject("video").getParseObject("videoOwner").getString("fullName"); 
        Log.e("User", commenterUsername); 
       } 
      } 
      else { 

      } 
     } 
    }); 

но он сталкивается с журналом, потому что commenterUsername имеет значение NULL. Любая помощь, позволяющая мне сделать этот запрос, высоко оценена, поскольку я не хочу делать слишком много запросов, если доступно простое и понятное решение. Спасибо

+0

'vList.get (i) .getParseObject (« video »). GetParseObject (« videoOwner »). GetString (« имя пользователя »);' должен работать? – cYrixmorten

+0

Я предполагаю, что он должен, но он не работает. Столкновение с журналом возвращает NPE, поэтому я думаю, что уведомление возвращается из запроса. – saintjab

+0

В коде, который вы отправили, у вас есть 'getParseObject (" video.videoOwner ")', что является недопустимым, тогда как код, который я опубликовал в первом комментарии, должен быть действительным. Поэтому 'getParseObject (" video.videoOwner ")' должен быть 'getParseObject (" video "). GetParseObject (" videoOwner ")' – cYrixmorten

ответ

1

В коде, который вы отправили, у вас есть getParseObject("video.videoOwner"), что является недопустимым.

getParseObject("video.videoOwner") должен быть getParseObject("video").getParseObject("videoOwner")

Точки обозначение работает только включают заявления, так что вы должны получить отдельные объекты, как это.