1

「name」プロップに「-」記号を含むすべてのエンティティをDBから削除する必要があります。

クエリを実行するには何が必要ですか?

4

1 に答える 1

3

データストアは「含む」クエリをサポートしていないため、GAEデータストアではクエリを1つだけ使用してこれを行うことはできません。したがって、2つのオプションがあります。

  1. すべてのエンティティを選択し、結果セットを繰り返し処理して、名前に「-」が含まれているかどうかを確認します。
  2. 「nameContainsDash」などの新しいプロパティをエンティティに追加し、このプロパティがに設定されているすべてのエンティティにクエリを実行しますtrue。このプロパティは、名前が更新されるたびに更新されます。
...

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

public boolean isNameContainsDash() {
    return nameContainsDash;
}

...

もちろん、プロパティはnull既存のエンティティ用であるため、2番目のオプションではデータの移行が必要になる場合があります。

于 2012-05-12T11:13:40.603 に答える