回答

3

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

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

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

public boolean isNameContainsDash() { 
    return nameContainsDash; 
} 

... 

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

相关问题