2016-04-05 8 views
0

Я пытаюсь запустить запрос с использованием версии синтаксического анализа SDK с использованием com.parse:parse-android:1.13.0. Я создаю запрос в локальном хранилище и используя метод ParseQuery$whereMatchesQuery() для сопоставления столбца, хранящего указатель на другой класс в моей базе данных. Код, который у меня есть следующие:Невозможно выполнить запрос с помощью указателя с помощью Android SDK

ParseQuery<PracticeSessionDetails> query = ParseQuery.getQuery(PracticeSessionDetails.class); 
query.fromLocalDatastore(); 
query.ignoreACLs(); 
query.whereEqualTo("user", ParseUser.getCurrentUser()); 

ParseQuery courseQuery = new ParseQuery("Course"); 
courseQuery.whereEqualTo("objectId",courseId); 
query.whereMatchesQuery("course", courseQuery); 

Когда я бегу query с помощью query.getFirst(), я не получаю ничего, извлеченный из локального хранилища. Я уже проверял запуск courseQuery отдельно, и он выбирает мне Course объект, который мне нужен. Это известная проблема? Я проделал этот путь, получив помощь от this post.

ответ

1

Я думаю, что вы смешиваете запрос, сохраняя указатель на другой класс в своей базе данных. Используйте следующий код, чтобы устранить вашу проблему:

ParseQuery<PracticeSessionDetails> query = ParseQuery.getQuery(PracticeSessionDetails.class); 
    query.fromLocalDatastore(); 
    query.ignoreACLs(); 
    query.whereEqualTo("user", ParseUser.getCurrentUser()); 

    ParseQuery<ParseObject> courseQuery = ParseQuery.getQuery("Course"); 
    courseQuery.whereMatchesQuery("course", query);