我有一个课程的实体,其中包含一套钥匙给我的标签实体。我怎么会去关于建立一个查询来获得一个名单的课程,与一个特定的标记?例如,我想找到的所有课程标记java。

这里是我的实体:

@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;
}
有帮助吗?

解决方案

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

其他提示

我不认为这是可能的。谷歌的数据存储库不允许使用参加的查询。但我可能错了。

在这里,在这里, 是的网站在那里你可以找到更多的信息,GQL.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top