如何使用java更新谷歌应用引擎中的数据存储的字段值

sat*_*hya 8 java google-app-engine google-cloud-datastore

我在数据存储中创建了一个Login(Kind).在登录中,我创建了两个字段username和passsword.当用户更改密码时,我想更新数据存储区内的字段值.但是当我使用这段代码时,

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

它会创建一个新行并插入密码"admin @ 123",而不是在同一行中更新新密码.

任何人都可以建议我如何更新字段的数据.

And*_*gin 21

如果要更新实体,可以使用以下两种方法:

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
}
Run Code Online (Sandbox Code Playgroud)

B.使用相同的id创建新实体.添加所有属性.放入数据存储区 - 它将覆盖旧实体.

Entity loginEntity = new Entity("login", id);
loginEntity.setProperty("password", "admin@123");
datastore.put(loginEntity);
Run Code Online (Sandbox Code Playgroud)

在这两个示例中,id是您要更改的实体的ID.

我希望你不要将密码存储为字符串.