Domanda

Ho un'entità corso che contiene un set di chiavi per la mia entità Tag. Come potrei fare per la creazione di una query per ottenere un elenco di corsi con un tag specifico? Per esempio, io voglio trovare tutti i corsi di taggati con Java.

Ecco le mie entità:

@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;
}
È stato utile?

Soluzione

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);

Altri suggerimenti

Non credo che questo sia possibile. Google DataStore non permette di utilizzare Collega query. Ma potrei sbagliarmi.

Qui e qui è il sito dove è possibile trovare ulteriori informazioni su GQL.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top