8

データ ストアにログイン (種類) を作成しました。ログイン内に、ユーザー名とパスワードの 2 つのフィールドを作成しました。ユーザーがパスワードを変更したときに、データストア内のフィールド値を更新したいと考えています。しかし、このコードを使用すると、

DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
Entity passwordchange = new Entity("Login");
passwordchange.setProperty("password", "admin@123");
datastore.put(passwordchange);

新しい行を作成し、同じ行で新しいパスワードを更新する代わりに、パスワード「admin@123」を挿入します。

フィールドのデータを更新する方法を教えてください。

4

1 に答える 1

21

エンティティを更新する場合、次の 2 つのオプションがあります。

A. ID を使用してデータストアからこのエンティティを取得します。プロパティを更新します。それをデータストアに戻します。

try {
    loginEntity = datastore.get(KeyFactory.createKey("login", id));
    loginEntity.setProperty("password", "admin@123");
    datastore.put(loginEntity);
} catch (EntityNotFoundException e) {
// This should never happen
}

B. 同じ ID を使用して新しいエンティティを作成します。すべてのプロパティを追加します。データストアに入れる - 古いエンティティを上書きします。

Entity loginEntity = new Entity("login", id);
loginEntity.setProperty("password", "admin@123");
datastore.put(loginEntity);

どちらの例でも、id は変更するエンティティの ID です。

パスワードを文字列として保存しないでください。

于 2012-12-28T13:50:38.387 に答える