0

タグエンティティへのキーのセットを含むコースエンティティがあります。特定のタグが付いたコースのリストを取得するためのクエリを作成するにはどうすればよいですか?たとえば、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では、結合クエリを使用できません。しかし、私は間違っているかもしれません。

ここここに、GQLに関する詳細情報を見つけることができるWebサイトがあります。

于 2009-07-17T18:20:31.627 に答える