1

我需要从我的数据库中删除所有在“name”道具中包含“-”符号的实体。

我需要什么来查询?

4

1 回答 1

3

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

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

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

public boolean isNameContainsDash() {
    return nameContainsDash;
}

...

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

于 2012-05-12T11:13:40.603 回答