如何查询使用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对象的列表?
答案 0 :(得分:1)
你会如何用Java做到这一点? collField.contains(:StringParam中)
答案 1 :(得分:1)
尝试这样的事情,这基本上取自谷歌文档:
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);