Définir Google DataStore Recherche
-
16-09-2019 - |
Question
J'ai une entité de cours qui contient un ensemble de clés à mon entité Tag. Comment puis-je faire pour créer une requête pour obtenir une liste de cours avec une étiquette spécifique? Par exemple, je veux trouver tous les cours tagués avec java.
Voici mes entités:
@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;
}
La solution
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);
Autres conseils
Je ne pense pas que ce soit possible. Google DataStore ne permet pas d'utiliser les requêtes de jointure. Mais je peux me tromper.
et
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow