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;
}
War es hilfreich?

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

scroll top