Ich habe drei Entitäten als Mensch, Hund, Treat. Die Behandlungseinheit hat den Schlüssel Key<Dog>
, und die Dog-Entität hat den Schlüssel Key<Human>
. Wenn ich nach Treat frage, möchte ich eine Antwort, die die tatsächliche Entität für Hund enthält, und die Entität für Hund muss die tatsächliche Entität für Mensch enthalten: im Gegensatz zu nur den Schlüsseln. Wie mache ich das?Objectify: Abfrage für Inhalt von Fremdschlüsseln
Update
So würde Ich mag Lage sein, die folgenden beiden Abfragen
getAllTreats()
sollte ausführen eine Liste aller Leckereien zurück, wo jeder durch behandeln kann ich Dog Daten zugreifen und dann Durch diese Hundedaten finden Sie menschliche Daten.- Angesichts einer Behandlung ID, möchte ich, dass behandeln mit seinen Hund Daten und mit den genannten Hund Human-Daten abrufen.
Code: (Ich habe pgiecek +1, weil er die @Parent Notation erwähnt Aber das Problem bleibt, zumindest für die einzelnen Treat von treatId.)
@Entity
public class Human {
@Id
private Long id;
private String name;
}
@Entity
public class Dog {
@Id
private Long id;
private String name;
@Load
@Parent
private Ref<Human> human;
}
@Entity
public class Treat {
@Id
private Long id;
private String name;
@Load
@Parent
private Ref<Dog> dog;
}
+1 für Ihre Antwort. Aber es gibt ein Problem: Die Art und Weise, in der die Vorfahren-Abfrage funktioniert, scheint zu erfordern, dass ich den Vorfahren im Voraus kenne und dann von oben nach unten meine Abfrage (d. H. Vom Stamm zum Blatt) durchführe. Aber was passiert, wenn alles, was ich habe, eine Leckerbissen ist? Wie bekomme ich eine Behandlung, die einen Hund enthält, der wiederum einen Menschen enthält? –
Können Sie Ihre Frage so aktualisieren, dass sie eine exakte Beziehung zwischen Ihren Entitäten enthält? Sie haben Ahnenwege nicht erwähnt. – pgiecek
Ich habe aktualisiert. –