我有三個班,兩級指針 - 一個查詢parse.com
Class A:
--pointer to class B
Class B:
--Pointer to class C
Class C:
--name
我想提出一個查詢ClassA的,和檢索ClassC.name我該怎麼辦呢?
我曾嘗試包括classA.ClassB,然後getClassObject爲classC但這沒有成功。
我有三個班,兩級指針 - 一個查詢parse.com
Class A:
--pointer to class B
Class B:
--Pointer to class C
Class C:
--name
我想提出一個查詢ClassA的,和檢索ClassC.name我該怎麼辦呢?
我曾嘗試包括classA.ClassB,然後getClassObject爲classC但這沒有成功。
在你A
類中創建一個getter來回報您的B
對象:
public B getBobject() {
return myBobject;
}
那就不要在B
類相同返回C
對象:
public C getCobject() {
return myCobject;
}
最後,這樣做是爲了得到name
:
myAobject.getBobject().getCobject().name
您需要使用include()
方法如下:
ParseQuery<ParseObject> query = ParseQuery.getQuery("ClassA");
query.include("pointerToB.pointerToC");
query.findInBackground(new FindCallback<ParseObject>() {
public void done(List<ParseObject> results, ParseException e) {
for (ParseObject a in results) {
ParseObject b = a.getParseObject("pointerToB");
ParseObject c = b.getParseObject("pointerToC");
String name = c.getString("name");
}
}
});
這假定在A類列被稱爲pointerToB
,而B類的列稱爲pointerToC
。
您應該對內部查詢使用whereMatchesQuery
方法。 比方說,你的階級結構是這樣的:
class C {
int id;
}
class B {
C c;
}
class A {
B b;
}
,那麼你應該用戶查詢爲:
C c = new C();
ParseQuery innerQuery = ParseQuery.getQuery(B.class);
innerQuery.whereEqualTo("c", c);
ParseQuery<A> query = ParseQuery.getQuery(A.class);
query.whereMatchesQuery("b", innerQuery);
query.findInBackground(new FindCallback<A>() {
@Override
public void done(List<A> objects, ParseException e) {
}
});
你能解釋一下「名」這個little..is Java類或什麼.. – Ranjit
你試圖通過它..? – Ranjit