2016-04-05 8 views
0

Ich versuche, eine Abfrage mit com.parse:parse-android:1.13.0 Version des Parse Android SDK auszuführen. Ich erstelle eine Abfrage auf dem lokalen Speicher und mit ParseQuery$whereMatchesQuery() Methode, um eine Spalte Speicherzeiger zu einer anderen Klasse in meiner Datenbank zu entsprechen. Der Code, den ich habe, ist folgende:Abfrage mithilfe eines Zeigers mit Android SDK nicht möglich

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); 

Wenn ich die query mit query.getFirst() laufen, ich habe nichts aus dem lokalen Speicher abgerufen erhalten. Ich habe bereits überprüft, courseQuery getrennt laufen zu lassen und es holt mich Course Objekt, das ich brauche. Ist das ein bekanntes Problem? Ich ging auf diese Weise weiter, indem ich Hilfe von this post bekam.

Antwort

1

Ich denke, Sie mischen Abfrage beim Speichern Zeiger auf eine andere Klasse in Ihrer Datenbank. Verwenden Sie den folgenden Code, um das Problem zu beheben:

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);