0

我有一个 Course 实体,其中包含我的 Tag 实体的一组键。我将如何创建查询以获取具有特定标签的课程列表?例如,我想查找所有带有 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;
}
4

2 回答 2

3
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);
于 2009-07-17T19:00:37.037 回答
0

我不认为这是可能的。Google DataStore 不允许使用 Join 查询。但我可能弄错了。

这里这里是您可以找到有关 GQL 的更多信息的网站。

于 2009-07-17T18:20:31.627 回答