我需要从数据库中删除所有实体,这些实体在“名称”属性中包含“-”符号。
我需要查询什么?
附言爪哇

最佳答案

您不能在仅一个查询的GAE数据存储中执行此操作,因为该数据存储不支持“包含”查询。因此,您有两个选择:


选择所有实体并遍历结果集,检查名称是否包含“-”。
添加新属性,例如将“ nameContainsDash”添加到您的实体,并查询所有将此属性设置为true的实体。每次更新名称时,都会更新此属性。


...

public void setName(String name) {
    this.name = name;
    nameContainsDash = name.contains("-");
}

public boolean isNameContainsDash() {
    return nameContainsDash;
}

...


当然,第二个选项可能需要数据迁移,因为对于现有实体,该属性将为null

09-30 14:59
查看更多