2016-04-18 16 views
0

Angenommen, wir haben zwei Objekte:Abfrage auf Eltern und Kinder zur gleichen Zeit mit Morphia

class Server { 
    ... 
    String location; 
    List<Status> statusList; 
    ... 
} 

class Status { 
    ... 
    int code; 
    ... 
} 

Wie kann ich Liste der Status für alle Server mit dem gleichen Standort zu erhalten. Zum Beispiel wenn code == 1 und location == "Beijing"?

Wenn ich createQuery (Server.class) und dann .filter() verwenden möchte, dann kann Ausgabe nicht Liste von Status sein!

Antwort

0

Sollte das Folgende nicht funktionieren?

List<Server> oops = createQuery(Server.class).find("location","Beijing").find("statusList.code", 1).asList(); 
+0

Ich brauche 'Liste ' aber hier ist 'Liste ' – user1079877

+0

Sie könnten dies in einem anderen Schritt wie diesem hier tun: http://stackoverflow.com/questions/23112874/java-8-merge-lists-with -stream-api – pintxo

0

Morphia unterstützt die Rückgabe verschiedener Typen nicht. Es gibt Ihnen den Typ zurück, der beim Erstellen der Abfrage angegeben wurde. Sie können es möglicherweise fälschen, indem Sie die Abfrage mit Status und der Auflistung für Server erstellen und nur das Feld Status projizieren. Sie müssen die Validierung jedoch deaktivieren.

Verwandte Themen