Java 从Google App Engine中删除名称为破折号的实体

Java 从Google App Engine中删除名称为破折号的实体,java,google-app-engine,transactions,google-cloud-datastore,Java,Google App Engine,Transactions,Google Cloud Datastore,我需要从数据库中删除所有在“name”属性中包含“-”符号的实体 我需要做什么查询?在只有一个查询的GAE数据存储中不能这样做,因为该数据存储不支持“包含”查询。因此,您有两种选择: 选择所有实体并迭代结果集,检查名称是否包含“-” 向实体添加新属性,例如“nameContainsDash”,并查询将此属性设置为true的所有实体。每次更新名称时都会更新此属性 。。。 公共void集合名(字符串名){ this.name=名称; nameContainsDash=name.contains(“-

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


我需要做什么查询?

在只有一个查询的GAE数据存储中不能这样做,因为该数据存储不支持“包含”查询。因此,您有两种选择:

  • 选择所有实体并迭代结果集,检查名称是否包含“-”
  • 向实体添加新属性,例如“nameContainsDash”,并查询将此属性设置为
    true
    的所有实体。每次更新名称时都会更新此属性
  • 。。。
    公共void集合名(字符串名){
    this.name=名称;
    nameContainsDash=name.contains(“-”);
    }
    公共布尔值isNameContainsDash(){
    返回namesdash;
    }
    ...
    
    当然,第二个选项可能需要数据迁移,因为对于现有实体,属性将为
    null