Запросить все сущности, где «Set» соответствует определенной строке? - PullRequest
1 голос
/ 14 июля 2010

Как вы запрашиваете список объектов, хранящихся с использованием GAE, где поле Set содержит указанную строку?т.е. представьте себе этот воображаемый пример:

@PersistenceCapable
class Photos {
    @PrimaryKey
    @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
    private Key key;

    String name = "";
    Set<String> tag = new Hashset<String>();
}

Предполагая, что в «базе данных» 40 000 фотографий, Как мне Query все фотографии, где tag='2009'

Или другой пример из документации Google, если у вас есть следующий класс:

@PersistenceCapable
public class Person {
    @PrimaryKey
    @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
    private Key key;

    @Persistent
    private Set<Key> favoriteFoods;

    // ...
}

Как получить список всех объектов Person, для которых у них есть определенный ключ Любимой еды?

Ответы [ 2 ]

1 голос
/ 14 июля 2010

Попробуйте что-то вроде этого, что в основном взято из документации Google:

Query query = pm.newQuery("select from com.example.Note where tag == tagname order by created");
query.declareParameters("String tagname");
return (List<Note>) query.execute(tag);

Согласно комментарию ниже, это также, кажется, работает:

Query query = pm.newQuery("select from com.example.Note where tags.contains(tagname) order by created");
query.declareParameters("String tagname");
return (List<Note>) query.execute(tag);
1 голос
/ 14 июля 2010

Как бы вы сделали это на Java?collField.contains (: stringParam)

...