Pregunta

Tengo una entidad de golf que contiene un juego de llaves a mi entidad Tag. ¿Cómo hago para crear una consulta para obtener una lista de cursos con una etiqueta específica? Por ejemplo, quiero encontrar todos los cursos etiquetados con java.

Aquí están mis entidades:

@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;
}
¿Fue útil?

Solución

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

Otros consejos

No creo que esto es posible. Google almacén de datos no permite utilizar consultas de unión. Pero puedo estar equivocado.

Aquí y aquí es el sitio web donde se puede encontrar más información sobre GQL.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top