Google Datastore-Abfrage Set
-
16-09-2019 - |
Frage
Ich habe einen Kurs Einheit, die eine Reihe von Tasten zu meinem Tag Entität enthält. Wie würde ich mich über eine Abfrage erstellen eine Liste der Kurse mit einem bestimmten Tag zu bekommen? Zum Beispiel möchte ich alle Kurse mit Java getaggt finden.
Hier sind meine Einheiten:
@PersistenceCapable(identityType = IdentityType.APPLICATION, detachable="true")
public class Course{
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key key;
@Persistent private Set<Key> tags;
//etc
}
@PersistenceCapable(identityType = IdentityType.APPLICATION, detachable="true")
public class Tag{
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key key;
@Persistent private String tagText;
}
Lösung
Tag tag = getTagFromString("java");
Key tagKey = tag.getKey(); // i will assume you have a getKey() method
PersistenceManger pm = PMF.get().getPersistenceManager();
Query q = pm.newQuery(Course.class);
q.setFilter("tags == :tagParam");
List<Course> coursesTaggedWithJava = (List<Course>) q.execute(tagKey);
Andere Tipps
Ich glaube nicht, das ist möglich. Google Datastor erlauben keine Join-Abfragen zu verwenden. Aber ich kann verwechselt werden.
Hier und
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow